Sur*_*raj 1 shell permissions printer
我想写入位于/dev/usb/lp0. 该文件归lp用户和组所有。每当我将打印机设备连接到系统时,就会创建此文件。
我尝试将自己添加到lp组中。但是,lp0连接打印机时该文件不会出现。将自己从群组中移除可以解决此问题。
获得写入权限的一种解决方案是-
sudo chmod 0666 /dev/usb/lp0这让我在https://unix.stackexchange.com/a/28711找到了答案
shell 脚本被成功触发,但它不运行sudo command*,因为 shell 脚本不是从终端执行的。我曾尝试使用sudo和gksudo,但都未能提示我输入密码,即,我无法通过后台 shell 脚本升级权限。
setuid来自Unix & Linux @ StackExchange,但这似乎是一个非常糟糕的主意。echo 'my_insecure_password' | sudo -S command,它没有用*。 Polkit由于其复杂程度,我没有尝试,这是在其他答案中建议的。但我愿意按照正确的方向去做。
将自己添加到lp组中可能是这里的最佳解决方案。这不会导致lp0文件不出现。(理论上有可能您的系统已配置为lp0在您在lp组中时不会出现,但是 1. 那必须是本地配置,而不是发行版的默认设置;和 2. 我不看看为什么有人会设置这个。)
以下内容仅供学术兴趣。在你的场景中,你不需要这个。
如果您需要更改设备文件的权限,那么如何在 USB 设备插件上运行自定义脚本?不完全是您所需要的——这适用于需要脚本的更复杂的情况。要更改设备文件的 Unix 权限或所有权OWNER,请直接在 udev 规则中使用GROUP和MODE分配。也就是说,在 下创建一个文件/etc/udev/rules.d,但该文件中的行应该有类似GROUP="mygroup"而不是RUN="/path/to/script".
如果您想做一些更复杂的事情,例如设置访问控制列表,则需要运行脚本。您不需要在该脚本中升级权限:它已经以 root 身份运行!只需调用您需要以 root 身份运行的程序,例如setfacl.
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |