-1

root が所有するファイルを ssh 経由で編集する必要があります。ファイルにエントリを追加し、最初の 9 行を保存して、残りを一時ファイルに並べ替えます。> ファイルの内容を上書きすることは知っていますが(それが私が望んでいることです)、ファイルの所有者としてルートを保持する必要があります。これどうやってするの?ありがとう!

#!/bin/bash
user=""
echo "User:"
read user
ssh xxxx@xxxx "
sed -i '\$a$user' file;
(head -n 9 file ; tail -n +10 file | sort) > temp;
cat temp > file;
rm -f temp
"
4

4 に答える 4

0
#!/bin/bash
user=""
echo "User:"
read user
ssh xxxx@xxxx "
sed -i '\$a$user' file;
(head -n 9 file ; tail -n +10 file | sort) > temp;
sudo mv temp file;
sudo chown root file
"

これは、xxxx マシンで、ログインしている xxxx ユーザーがパスワードなしで sudo にアクセスできる場合にうまく機能します。/etc/sudoers ファイルに次のエントリを追加することで、これを行うことができます。

xxxx ALL=NOPASSWD: ALL
于 2013-08-01T18:08:49.793 に答える
0

BASHで書いてからしばらく経ちましたが、出発点になると思います

chown root $file // if you have a variable with the file name in 

また

chown root thefile.txt //if you want it hard coded;

方程式のもう 1 つの変数は、アプリケーション cat の所有権を持っているのは誰ですか? 実行中のアプリケーションの所有者が誰であれ、それが出力ファイルの所有権を決定する方法だと思います

多分あなたも試すことができます

$ sudo cat temp > file

セッションがルートに属し、したがって出力がルートに属するため???

于 2013-08-01T18:02:20.143 に答える