Linux 命令之 - sudo
命令简介
sudo
是 Linux 系统中一个非常有用的命令,它允许系统管理员让普通用户暂时获得 root 权限来执行某些需要 root 权限的命令或操作。
命令格式
1 | sudo [选项] 命令 |
参数说明
命令实例
基本用法
1.切换到 root 用户
1 | sudo -i # 或 sudo su - |
切换到 root 用户,环境也会被初始化。
sudo su - 和 sudo -i 的区别:
2.模拟登录到目标用户环境
1 | sudo -i postgres |
3.使用指定 shell 执行命令
1 | sudo -s bash |
4.执行单个命令
1 | sudo command |
以 root 权限执行单个命令。
5.后台运行命令
1 | sudo -b apt-get update |
在后台以 root 权限执行 apt-get update
。
6.以其它用户身份运行
1 | sudo -u www-data /usr/sbin/apache2ctl start |
以 www-data
用户身份启动 Apache 服务。
7.列出可执行的命令
1 | sudo -l |
列出当前用户可以以 root 权限执行的命令列表。
扩展用法
1.使用别名
1 | alias ll='sudo ls -l' |
2.使用配置文件
1 | # /etc/sudoers |
3.使用 sudoers 文件限制命令
1 | # /etc/sudoers |
高级用法
1.使用 sudoedit 编辑配置文件
1 | sudoedit /etc/passwd |
2.使用 sudoers 文件控制命令执行权限
- 限制用户只能执行特定的命令
1
2
3# /etc/sudoers
user1 ALL=(ALL) NOPASSWD: /usr/bin/vim, /usr/bin/nano - 限制用户只能在特定的时间段内执行命令
1
2
3# /etc/sudoers
user1 ALL=(ALL) NOPASSWD: /usr/bin/vim, /usr/bin/nano 00:00-23:59 - 限制用户只能在特定的主机上执行命令
1
2
3# /etc/sudoers
user1 ALL=(ALL) NOPASSWD: /usr/bin/vim, /usr/bin/nano @localhost
3.在脚本中使用 sudo
在脚本中,通常需要从标准输入读取密码,而不是交互式输入。
1 |
|
4.配置不需密码
可以在 /etc/sudoers
文件中为某些命令或用户配置无需输入密码。
1 | %admin ALL=(ALL) NOPASSWD:ALL |
上面这行表示,属于 admin
组的用户可以无密码执行任何命令。
5.日志记录
sudo
还带有日志功能,记录了执行的命令和时间等信息,默认存储在 /var/log/sudo/
目录下。
1 | Defaults logfile=/var/log/sudo/sudo.log |
以上配置指定了 sudo
的日志文件路径。
通过以上实例和扩展用法介绍,相信你已经对 sudo
命令有了全面的了解。如果还有任何疑问,欢迎随时咨询。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 生活日志!
评论