我想在我的计算机上有一个文件来存储特定的令牌(而不是仅将它们导出到 shell 环境)。因此,我希望令牌只能由 sudo 读取,因此访问它需要授权。如何编写只能由 sudo 读取的文件?
答案1
请注意,这sudo
与 root/超级用户不是同义词。事实上,sudo
command 允许您以几乎任何用户的身份执行命令,如安全策略所指定:
$ sudo whoami
root
$ sudo -u bob whoami
bob
我假设您打算创建一个只有root
用户可以读取的文件:
# Create the file
touch file
# Change permissions of the file
# '600' means only owner has read and write permissions
chmod 600 file
# Change owner of the file
sudo chown root:root file
当需要编辑文件内容时:
# Replace 'nano' with your prefered editor
sudo nano file
查看如何只有 root 才能读取该文件:
$ cat file
cat: file: Permission denied
$ sudo cat file
foo bar baz
答案2
弄清楚了:
echo 'hello world' > test
sudo chown root test
sudo chmod 600 test
sudo cat test
在另一个终端中,如果您不使用 sudo 执行此操作:
> cat test
cat: test: Permission denied
答案3
带 T 恤
$ echo "some text" | sudo tee tmpfile
some text
$ sudo chmod 700 tmpfile
$ cat tmpfile
cat: tmpfile: Permission non accordée
$ sudo cat tmpfile
some text
对于附加:
$ echo "text appened" | sudo tee -a tmpfile
$ sudo cat tmpfile
somme text
text appened
$ sudo rm tmpfile