超凡脱俗的 sudo

超凡脱俗的 sudo
Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

如果希望可以执行这个命令,需要管理员在文件 /etc/sudoers 中增加权限即可。

官方的定义为:

execute a command as another user
语法

$ sudo [ option ] command
参数说明:

-l 或–list:显示出自己(执行 sudo 的使用者)的权限

-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

-b 将要执行的指令放在后台执行

-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

-u username/uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(uid 为该 username 的使用者号码)

-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell

-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )

command 要以系统管理者身份(或以-u 更改为其他人)执行的指令

没有sudo权限的用户

如果没有sudo权限,在执行命令的时候还有下面👇的输出:

$ sudo ls
[sudo] password for username:
username is not in the sudoers file. This incident will be reported.

指定用户执行命令

这个的应用场景为,其他用户在登录,而你具有sudo权限,测试可以通过指定用户名来操作。

$ sudo -u username ls -l

列出目前sudo的权限

如果不清楚,可以执行那些命令,可以通过参数-l来查看,主要看在sudoer里面的修改。

$ sudo -l
Password:
Matching Defaults entries for user on localhost:
!visiblepw, always_set_home, match_group_by_gid, 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 user may run the following commands on localhost:
(ALL) ALL
以root权限执行上一条命令

使用sudo快速统计家目录的使用情况

$ sudo sh -c “cd /home ; du -s * | sort -rn “
15013524344 user1
1170974156 user2
139238772 user3
1382673532 user4
41071068 user5
3523056 user6

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/416684.html

联系我们
联系我们
分享本页
返回顶部