linux的sudo授权

superchen 发布于 2023-07-13 25 次阅读


如果有这样一个需求,linux 的其他用户(普通用户)要查看你的日志文件,但是你又不想让他使用其他命令

那就要使用 sudo 了,授权指定用户使用命令了

```bash
### 打开配置文件 这个命令等于 vi /etc/sudoers
visudo
```

找到下面这行,这行的意思是 root 用户授权全部命令

 root    ALL=(ALL)       ALL

我们添加了一个用户 chen

 useradd chen
 passwd 123456

这就是我们看日志的用户,我们想让他只使用 cat 和 less 命令 (建议加上 /bin/)

chen    ALL=(ALL)   /bin/cat,/bin/less

多个命令直接用逗号隔开

我们登录用户 chen

使用 sudo -l 看看

Matching Defaults entries for chen on localhost:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL
    PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
    LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User chen may run the following commands on localhost:
    (ALL) /bin/cat

这一大串看的人头皮发麻,但是前面的基本可以忽略,看最后两行
意思就是

使用者 chen 可以在本地主機上執行以下命令:
/bin/cat
/bin/less

我们来试试命令

 sudo cat  /var/log/messages

发现可以正常使用

我们来试试没有授权的命令

sudo more  /var/log/messages

输入命令之后显示

Sorry, user chen is not allowed to execute '/bin/more /var/log/messages' as root on localhost.localdomain.

意思就是:抱歉,使用者 chen 不允許在 localhost.localdomain 上以根使用者身份執行 '/bin/more /var/log/messages'。

  • alipay_img
  • wechat_img
此作者没有提供个人介绍
最后更新于 2024-11-17