2017-07-12 13 views
-2

私はsftpファイルにJSchを使用しています。アップロード後、私はそのファイルのパーミッションを変更します。しかし、どのように所有者を変更するには?そこに私が見つけることができる良い例はありません。グループ:私はむしろ、所有者のための文字列よりも、整数を受け取り、あなたのような JSch SFTPを使用してチャーターする方法は?

chown Administrator:Administrators filename.exe 

には、Linuxが、JSCH chownコマンドをコマンドで行うだろうしたいです。それはどんなナンセンスですか?ここで

は私のコードの一部

jSch = new JSch(); 
    if (useKey) jSch.addIdentity(privateKey); 
    session = jSch.getSession(user, host, port); 
    if (!useKey) { 
     session.setPassword(pass); 
     session.setConfig("PreferredAuthentications", "password"); 
    } 
    session.setConfig("StrictHostKeyChecking", "no"); 
    session.connect(FTP_TIMEOUT); 
    channel = session.openChannel("sftp"); 
    sftp = (ChannelSftp) channel; 
    sftp.connect(FTP_TIMEOUT); 

    sftp.put(fis,file.getName()); 
    String permissions = "744";  
    int octal = Integer.parseInt(permissions,8); //jsh uses octal, not decimal 
    if (file.getName().endsWith(".exe")) { //make exe files executable 
     sftp.chmod(octal,file.getName()); 
     sftp.chown(this-is-an-integer-not-a-string, file.getName()); 
    } 

答えて

0

UIDを使用しているchown方法で、javadocsを参照してください。 UIDにアクセス許可をコンパイルしようとしていますが、それは間違っています。変更するユーザーのUIDを見つけ、chown関数に渡してください。お使いのサーバーがLinuxの場合は、here

+0

所有者がAdministratorであり、正しいです。しかし、グループはNoneであり、管理者でなければなりません。 UIDの入力のみがある場合、どのようにグループを変更しますか? – user3217883

0

JSCH SFTP version 3を実装しています。 SFTPバージョン3では、ファイルの所有者とグループの数値が使用されます。サーバー上のファイルの所有者またはグループを変更するクライアントは、要求する正しい数値を知っていなければなりません。

OpenSSH SFTPサーバーもSFTPバージョン3を実装しています。これは最も広く使用されているSFTPサーバーであり、おそらく使用しているものです。私が知る限り、それは文字列として所有者名をとるchown操作をサポートしていません。

SFTP version 4以降では、所有者とグループを文字列として渡します。この機能をサポートするサードパーティ(商用)のSFTPクライアントとサーバーを見つけることができます。

関連する問題