国内特效比漂亮的网站,个人网页设计ps,qq头像网站源码,有了域名怎么建网站sudo命令详解
1、初识sudo
sudo是linux下常用的允许普通用户使用超级用户权限的工具#xff0c;sudo 用来执行需要提升权限#xff08;通常是作为 root 用户#xff09;的命令#xff0c;允许系统管理员让普通用户执行一些或者全部的root命令#xff0c;如halt#xff…sudo命令详解
1、初识sudo
sudo是linux下常用的允许普通用户使用超级用户权限的工具sudo 用来执行需要提升权限通常是作为 root 用户的命令允许系统管理员让普通用户执行一些或者全部的root命令如haltrebootshutdown、init等等。这样不仅减少了root用户的登陆和管理时间同样也提高了安全性。sudo是对Shell的一个代替它是面向每个命令的。 它的特性主要有这样几点 ① sudo能够限制用户只在某台主机上运行某些命令。 ② sudo提供了丰富的日志详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。 ③ sudo使用时间戳文件——日志来执行类似的“检票”系统。当用户调用sudo并且输入他的密码时用户获得了一张存活期为5分钟的票这个值可以在/etc/sudoers设置。 ④ sudo的配置文件是/etc/sudoers属性必须为0440它允许系统管理员集中地管理用户的使用权限和使用主机。
2、sudo命令用法
命令解释
sudo — execute a command as another user以其他用户身份执行命令
命令语法
sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command
命令选项
选 项解 释-V显示版本编号-h显示版本编号及指令的使用方式说明-l显示出自己执行 sudo 的使用者的权限-v因为 sudo 在第一次执行时或是在 N 分钟内没有执行N 预设为五会问密码这个参数是重新做一次确认如果超过 N 分钟也会问密码-k将会强迫使用者在下一次执行 sudo 时问密码不论有没有超过 N 分钟-b将要执行的指令放在后台执行-pprompt 可以更改问密码的提示语其中 %u 会代换为使用者的帐号名称 %h 会显示主机名称-uusername/#uid 不加此参数代表要以 root 的身份执行指令而加了此参数可以以 username 的身份执行指令#uid 为该 username 的使用者号码-s执行环境变数中的 SHELL 所指定的 shell 或是 /etc/passwd 里所指定的 shell-H将环境变数中的 HOME 家目录指定为要变更身份的使用者家目录如不加 -u 参数就是系统管理者 root command要以系统管理者身份或以 -u 更改为其他人执行的指令
实例
① 列出当前用户权限
[tomlocalhost /]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keepCOLORSDISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS, env_keepMAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESSLC_CTYPE, env_keepLC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES, env_keepLC_MONETARYLC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE, env_keepLC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSETXAUTHORITY, secure_path/sbin\:/bin\:/usr/sbin\:/usr/bin用户 tom 可以在 localhost 上运行以下命令(root) /sbin/useradd
② 以root身份使用useradd命令创建cat用户
[tomlocalhost /]$ sudo -u root useradd cat③ 查看版本信息
[tomlocalhost ~]$ sudo -V
Sudo 版本 1.8.23
Sudoers 策略插件版本 1.8.23
Sudoers 文件语法版本 46
Sudoers I/O plugin version 1.8.233.如何编辑配sudo的配置文件/etc/sudoers
编辑sudo的配置文件/etc/sudoers一般不直接使用vivi /etc/sudoers去编辑因为sudoers配置有一定的语法直接用vi编辑保存系统不会检查语法如果有错也会保存从而导致sudo工具无法使用最好使用visudo命令去配置。虽然visudo也是调用vi去编辑但是保存时会进行语法检查有错误会给出提示。
① 别名规则
别名规则的定义格式 AliasType NAME item1, item2, … 或 AliasType NAME item1 : NAME item2, item3 : … 其中AliasType 指别名类型包括HostAlias、UserAlias、RunasAlias 和 Cmnd_Alias 四种。NAME 指别名命名可以包含大写字母、下划线以及数字但必须以大写字母开头。
② 授权规则
授权规则的定义格式 授权用户 主机命令动作 或 授权用户 主机[(切换到哪些用户或用户组)] [是否需要密码验证] [命令1],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2], … 其中授权用户、主机和命令动作这三个要素缺一不可在命令动作之前可以指定切换到特定用户或用户组下在这里指定切换的用户或用户组要用 () 小号括起来如果不需要密码直接运行命令的应该加NOPASSWD:参数。
示例
接下来我们以一个栗子来教会大家该如何配置 ① 使用户 tom 能够有权限挂载/dev/sr0到/media目录下
[rootlocalhost ~]# visudo //打开配置文件
...省略部分信息
## Allow root to run any commands anywhere
root ALL(ALL) ALL
tom ALL(root) /bin/mount /dev/sr0 /media //添加该条信息
...省略部分信息[rootlocalhost ~]# su - jerry //切换到jerry用户
[jerrylocalhost ~]$ sudo mount /dev/sr0 /media/ //测试jerry用户是否可以运行此命令
[sudo] password for jerry:
jerry is not in the sudoers file. This incident will be reported. //jerry被拒绝运行[jerrylocalhost ~]$ su - tom //切换到tom用户
Password:
[tomlocalhost ~]$ sudo mount /dev/sr0 /media/ //运行mount /dev/sr0 /media/命令
mount: block device /dev/sr0 is write-protected, mounting read-only //挂载成功
② 使用户 tom 和 jerry 能够有权限修改IP使用别名实现且不需要输入密码
[rootlocalhost ~]# sudoedit /etc/sudoers.d/ip //在/etc/sudoers.d下编辑一个配置文件
User_Alias IPMOD_USERS tom,jerry //定义用户别名IPMOD_USERS其中有用户tom,jerry
Cmnd_Alias IP /sbin/ip //定义命令别名为/sbin/ip命令设置别名IP
IPMOD_USERS ALL(root) NOPASSWD:IP //IPMOD_USERS用户在任何主机使用root身份不需要密码执行IP命[rootlocalhost ~]# su - tom //切换到tom用户
[tomlocalhost ~]$ ip a //查看ip信息
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:d8:94:d9 brd ff:ff:ff:ff:ff:ffinet 192.168.140.137/24 brd 192.168.140.255 scope global eth0inet6 fe80::20c:29ff:fed8:94d9/64 scope linkvalid_lft forever preferred_lft forever
[tomlocalhost ~]$ sudo ip add add 192.168.140.138/24 dev eth0 //添加ip地址
[tomlocalhost ~]$ ip a //查看ip信息
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:d8:94:d9 brd ff:ff:ff:ff:ff:ffinet 192.168.140.137/24 brd 192.168.140.255 scope global eth0inet 192.168.140.138/24 scope global secondary eth0 //添加成功inet6 fe80::20c:29ff:fed8:94d9/64 scope linkvalid_lft forever preferred_lft forever[tomlocalhost ~]$ su - jerry //切换到jerry用户
Password:
[jerrylocalhost ~]$ sudo ip add del 192.168.140.138/24 dev eth0 //删除ip地址
[jerrylocalhost ~]$ ip a //查看ip信息可以看到已经删除成功
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWNlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:d8:94:d9 brd ff:ff:ff:ff:ff:ffinet 192.168.140.137/24 brd 192.168.140.255 scope global eth0inet6 fe80::20c:29ff:fed8:94d9/64 scope linkvalid_lft forever preferred_lft forever
③ 使用户 jerry 能够有权限使用 /user/sbin/ 下的所有命令除了 /use/sbin/userdel 命令
[rootlocalhost ~]# visudo //打开配置文件
...省略部分信息
## Allow root to run any commands anywhere
root ALL(ALL) ALL
jerry ALL(root) /usr/sbin/*,!/usr/sbin/userdel //添加该条信息[rootlocalhost ~]# su - jerry //切换到jerry用户
[jerrylocalhost ~]$ sudo useradd jerry_testuser //添加用户jerry_testuser
[sudo] password for jerry:
[jerrylocalhost ~]$ tail -1 /etc/passwd //查看/etc/passwd文件最后一条
jerry_testuser:x:503:503::/home/jerry_testuser:/bin/bash //添加成功
[jerrylocalhost ~]$ sudo userdel jerry_testuser //测试是否可以使用/use/sbin/userdel 命令
Sorry, user jerry is not allowed to execute /usr/sbin/userdel jerry_testuser as root on localhost.localdomain. //拒绝使用
sudo命令下环境变量失效问题
在sudo命令时系统会默认重置环境变量为安全的环境变量即之前设置的变量都会失效
sudo sed /^#/d;/^$/d /etc/sudoersDefaults env_reset表示默认会重置环境变量 secure_path 当使用sudo命令时自定义的环境变量PATH将失效系统只识别该行定义的环境变量
解决方法
将 sudo 执行命令时改成系统的 PATH 变量中的路径 将 Defaults env_reset 改成 Defaults !env_reset 来取消掉对 PATH 变量的重置 然后在 .bashrc 中最后添加 alias sudo‘sudo env PATH$PATH’。这样 sudo 执行命令时所搜寻的路径就是系统的 PATH 变量中的路径修改sudo配置文件 修改 /etc/sudoers 文件的 env_keep 和 secure_path 配置项
su 命令
Linux操作系统中的su命令是一种用于切换用户身份的命令。su是Switch User的缩写它允许当前用户切换到其他用户账户包括超级用户root。
su命令的语法如下
su [选项] [用户名]当不指定用户名时默认切换到超级用户root账户。如果指定了用户名则会切换到该用户的账户。
su命令常用的选项包括
-切换到目标用户的环境变量类似于登录该用户。-c command执行指定的命令然后切换回原用户。-l 或 --login切换到目标用户的环境变量类似于登录该用户。 使用su命令需要输入目标用户的密码只有拥有目标用户密码的用户才能切换到该用户账户。
su命令的主要用途是在需要进行系统管理或执行需要超级用户权限的任务时临时切换到超级用户账户。通过切换到超级用户用户可以执行一些普通用户无法执行的操作如安装软件、修改系统配置等。
由于su命令需要输入目标用户的密码这可能会导致安全风险。为了提高系统的安全性建议使用sudo命令来代替su命令。sudo命令允许普通用户以超级用户权限执行指定的命令而无需知道超级用户的密码。
总结来说su命令是一种用于切换用户身份的命令可以在需要进行系统管理或执行需要超级用户权限的任务时使用。为了提高系统的安全性建议使用sudo命令代替su命令。