ARH*_*ARH 6 permissions root sudo raid
我无法运行以下命令sudo来更改 sysfs 参数:
$ sudo echo 300 > /sys/block/md0/md/stripe_cache_size
bash: /sys/block/md0/md/stripe_cache_size: Permission denied
Run Code Online (Sandbox Code Playgroud)
但是,sudo当我更改为root用户时,它会起作用:
$ sudo su
[root] [ /home/arh ]
# echo 300 > /sys/block/md0/md/stripe_cache_size
[root] [ /home/arh ]
# cat /sys/block/md0/md/stripe_cache_size
300
Run Code Online (Sandbox Code Playgroud)
这是文件权限:
$ ls -l /sys/block/md0/md/stripe_cache_size
-rw-r--r-- 1 root root 4096 Feb 2 08:50 /sys/block/md0/md/stripe_cache_size
Run Code Online (Sandbox Code Playgroud)
这对你有意义吗?
请注意,我更改了 /etc/sudoers 文件visudo以使sudo命令无密码。
“echo 300”是使用 sudo 执行的,它以正常方式将 300 输出到 stdout。然后作为您的普通用户,您尝试获取该输出并写入 /sys/
Sudo 不是提升整个命令行权限的魔法命令。它接受您传递给它的参数并将它们作为程序执行。Bash(以普通用户身份运行)执行“sudo echo 300”,然后获取该输出并尝试将其写入文件。请注意,写入文件是由以普通用户身份运行的 bash 完成的。
这应该有效:
须藤 bash -c "echo 300 > /sys/block/md0/md/stripe_cache_size"
sudo 将以更高的权限执行 bash,然后 root bash 将执行整个命令。
你在这里只用 sudo 命令运行 echo,但是 - 他的输入/输出/标准错误来自普通用户。
如果您希望以 root 用户身份写入文件,则不能在 shell 中使用 >。而是使用例如 tee 命令:
echo 300 |sudo tee /sys/block/md0/md/stripe_cache_size
| 归档时间: |
|
| 查看次数: |
3754 次 |
| 最近记录: |