私は現在/bin
ディレクトリにいます。ディレクトリ内容のテキストファイルを作成し、ディレクトリ内の他のファイルに/bin
保存しようとしています。/root
コマンドを入力しましたが、ls -l >/directoryname/filename
実行する権限がありません。コマンドを入力する前に入力しようとしましたが、sudo
それも機能しませんでした。このファイルを保存する権限を取得する方法を知っている人はいますか?とても感謝しています。
答え1
sudo ls > /root/out.txt
ls
コマンドの一部だけを実行すると、高い権限で実行されます。したがって、コマンドのリダイレクトされた部分には、目的の場所にアクセスするために必要な権限がありません。
代わりに、次のものを使用できます。tee
接頭辞はsudo
次のとおりです。
ls | sudo tee /root/out.txt
答え2
sudoを使用して複数のコマンドを実行する簡単な解決策は次のとおりです。
sudo bash -c 'command1;command2'
あなたの場合、これは役に立ちます:
sudo bash -c 'ls -l >/directoryname/filename'
もちろん、これはbashを使用している場合にのみ当てはまります。
答え3
これを入力しsudo chmod 777 /filename
て実行すると、以前に実行しようとしたコマンドを実行する権限が付与されます。chmod 777
既定では、すべてのユーザーにこのディレクトリに対する読み取り、書き込み、および実行権限を付与します。ただし、後でユーザーが読み取りまたは書き込みのみを許可するように権限を変更できます。