コード例 #1
0
ファイル: ftp_server.py プロジェクト: 0xkag/M2Crypto
 def authorize (self, channel, username, password):
     if string.lower(username) in ['anonymous', 'ftp']:
         import pwd
         try:
             # ok, here we run into lots of confusion.
             # on some os', anon runs under user 'nobody',
             # on others as 'ftp'.  ownership is also critical.
             # need to investigate.
             # linux: new linuxen seem to have nobody's UID=-1,
             #    which is an illegal value.  Use ftp.
             ftp_user_info = pwd.getpwnam ('ftp')
             if string.lower(os.uname()[0]) == 'linux':
                 nobody_user_info = pwd.getpwnam ('ftp')
             else:
                 nobody_user_info = pwd.getpwnam ('nobody')
             channel.read_only = 1
             if self.root is None:
                 self.root = ftp_user_info[5]
             fs = filesys.unix_filesystem (self.root, '/')
             return 1, 'Anonymous Login Successful', fs
         except KeyError:
             return 0, 'Anonymous account not set up', None
     elif self.real_users:
         return unix_authorizer.authorize (
                 self,
                 channel,
                 username,
                 password
                 )
     else:
         return 0, 'User logins not allowed', None
コード例 #2
0
 def authorize (self, channel, username, password):
     if string.lower(username) in ['anonymous', 'ftp']:
         import pwd
         try:
             # ok, here we run into lots of confusion.
             # on some os', anon runs under user 'nobody',
             # on others as 'ftp'.  ownership is also critical.
             # need to investigate.
             # linux: new linuxen seem to have nobody's UID=-1,
             #    which is an illegal value.  Use ftp.
             ftp_user_info = pwd.getpwnam ('ftp')
             if string.lower(os.uname()[0]) == 'linux':
                 nobody_user_info = pwd.getpwnam ('ftp')
             else:
                 nobody_user_info = pwd.getpwnam ('nobody')
             channel.read_only = 1
             if self.root is None:
                 self.root = ftp_user_info[5]
             fs = filesys.unix_filesystem (self.root, '/')
             return 1, 'Anonymous Login Successful', fs
         except KeyError:
             return 0, 'Anonymous account not set up', None
     elif self.real_users:
         return unix_authorizer.authorize (
                 self,
                 channel,
                 username,
                 password
                 )
     else:
         return 0, 'User logins not allowed', None