[[email protected] ~]# vim /etc/init.d/oldboy
[[email protected] ~]# cat /etc/init.d/oldboy
# chkconfig: 2345 99 99
echo aaa(表示脚本的文件内容,oldboy表示开机启动的脚本名称)
[[email protected] ~]# ll /etc/init.d/oldboy
-rw-r--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chmod u+x /etc/init.d/oldboy
[[email protected] ~]# ll /etc/init.d/oldboy
-rwxr--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chkconfig --add oldboy
[[email protected] ~]# chkconfig |grep oldboy
oldboy 0:off 1:off 2:on 3:on 4:on 5:on 6:off
注解:
[[email protected] ~]# # 案例2 让一个命令在开机的时候自动运行的方法
[[email protected] ~]# (方法1)把这个命令或脚本放到/etc/rc.local 下面
-bash: syntax error near unexpected token `把这个命令或脚本放到/etc/rc.local‘
[[email protected] ~]# #(方法1)把这个命令或脚本放到/etc/rc.local 下面
[[email protected] ~]# #(方法2)该命令通过chkconfig 命令来管理
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 的脚本内容保存退出、
[[email protected] ~]# # ll /etc/init.d/oldboy 发现oldboy默认的权限是644 没有执行权限、所以 chmod +x /etc/init.d/oldboy ^C
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 .脚本内容保存退出、脚本的内容格式的的脚本内容保存退出、脚本的内容格式的开头必须是
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 的脚本内容保存退出、脚本的内容格式的开头必须是 (# chkconfig: 2345 99 99 )这是chkconfig 管理脚本的条件。2345 表示在开机启动的时候级别,运行级别一般是2345,第一个99表示开机 启动的顺序,第二99表示关机的时候的顺序,我们关注的是开机的,一般自己写的脚本放在99这个文职就可以,用 chkconfig --add oldboy
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 的脚本内容保存退出、脚本的内容格式的开头必须是 (# chkconfig: 2345 99 99 )这是chkconfig 管理脚本的条件。2345 表示在开机启动的时候级别,运行级别一般是2345,第一个99表示开机 启动的顺序,第二99表示关机的时候的顺序,我们关注的是开机的,一般自己写的脚本放在99这个文职就可以,用 chkconfig --add oldboy 加入控制
[[email protected] ~]# #3 chkconfig |grep oldby 检查 2345 上是开机启动的
案例2:一次创建50万文件的方法,必须要用|xargs 否则无法创建
[[email protected] ~]# #echo {1..500000}|xargs touch
[[email protected] ~]# #一次创建50万文件的方法,必须要用|xargs 否则无法创建
[[email protected] ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 580K 330K 250K 57% /
tmpfs 123K 1 123K 1% /dev/shm
/dev/sda1 50K 38 50K 1% /boot
[[email protected] ~]# dev/sda3 580K 330K 250K 57% /
[[email protected] ~]# #查看节点快用完了,
[[email protected] ~]# find / -type d -size +1M|xargs ls -lhd
dr-xr-x---. 2 root root 6.4M Nov 13 21:06 /root
[[email protected] ~]# ls /root |wc -l
282437
[[email protected] ~]# \rm -rf /root
[[email protected] ~]# ls -l
total 0
[[email protected] ~]# #ls |xargs rm -rf 这是删除大量文件的方法。
[[email protected] ~]# #ls -l 查看发现成功了
案例3 创建一个 用户UID是888 不可登陆的 不创建家目录的用户 test
[[email protected] oldboy]# useradd -u 888 -s /sbin/nologin -M test
[[email protected] oldboy]# grep test /etc/passwd
test:x:888:888::/home/test:/sbin/nologin
[[email protected] oldboy]# ls /home/test
ls: cannot access /home/test: No such file or directory(没有创建家目录)
-u 制定UID
-s 不可登陆的
-M 不创建家目录
Test 表示用户
[[email protected] oldboy]# id test
uid=888(test) gid=888(test) groups=888(test)
[[email protected] oldboy]# vim /etc/passwd
#test:x:888:888::/home/test:/sbin/nologin
(#)号表示删除了这个用户
[[email protected] oldboy]# id test
id: test: No such user (显示用户不存在了,相当于用户删掉了但是数据还是在的)
userdel test 默认不会删除用户test的家目录
-r 参数连同用户的test家目录一起删掉了,userdel -r 把用户的信息删除的干干净净
最安全的方法就是在/etc/passwd 下面的用户前面加上一个(#号注释掉,如果有人要用,去掉#号即可这样操作比较安全)
[[email protected] ~]# useradd -u 888 -s /sbin/nologin -M alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888::/home/alex888:/sbin/nologin
[[email protected] ~]# chkconfig postfix off
[[email protected] ~]# usermod -c "xu ni yong hu " alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888:xu ni yong hu :/home/alex888:/sbin/nologin
[[email protected] ~]# id alex888
uid=888(alex888) gid=888(alex888) groups=888(alex888)
[email protected] ~]# usermod -g oldboy alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy)
改变它的所属oldboy 组的成员
[[email protected] ~]# usermod -G root,oldboy,test alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy),0(root),890(test)
属于多个用户组
usermod 主要是用来修改用户的属性信息的
[[email protected] ~]# echo ‘123456‘|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
非交互式的改变用密码 –stdin 表示一次修改密码
--stdin 这个命令只能root才可以用
[[email protected] ~]# history -c 清空历史记录
案例:给文件做一个指纹
[[email protected] ~]# touch oldboy
[[email protected] ~]# echo oldboy >oldboy
[[email protected] ~]# cat oldboy
oldboy
[[email protected] ~]# md5sum oldboy
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# cat oldboy
Oldboy
只有这个文件在发生变化的时候才会起作用
[[email protected] ~]# md5sum oldboy >police.log(放到一个指定的文件中)
[[email protected] ~]# cat police.log
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# md5sum -c police.log (指纹的对比,如果没有发生变化就是OK的)
oldboy: OK
往文件oldboy里面添加的内容测试
[[email protected] ~]# echo oldboy.txt >>oldboy
[[email protected] ~]# cat oldboy
oldboy
oldboy.txt
[[email protected]dboy02 ~]# md5sum -c police.log
oldboy: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
oldboy: FAILED 表示文件发生了变化
案例:
批量添加10个用户stu01,stu0……stu10,斌设置8位随机密码;
[[email protected] ~]# useradd -u 999 -s /sbin/nologin -M mysql
[[email protected] ~]# id mysql
uid=999(mysql) gid=999(mysql) groups=999(mysql)
[[email protected] ~]# #添加一个用户MySQL,并指定UID为999 GID为999
在Linux里面只要指定UID后,GID跟UID是一样的,不用加小写的-g
Useradd -g 是指定用户的名字,指定组ID用groupadd -g test 添加到test组里面
案例:模拟一个大文件,用top来查看CPU的负载进程情况
[[email protected] tmp]# dd if=/dev/zero of=/tmp/100 bs=1M count=10009(大文件来模拟)
[[email protected] ~]# top(top来观察进程的负载信息)
top - 22:21:21 up 4:11, 2 users, load average: 1.03, 0.34, 0.13
Tasks: 92 total, 1 running, 90 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004112k total, 938448k used, 65664k free, 11824k buffers
Swap: 786428k total, 0k used, 786428k free, 814744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 0.3 0.0 0:19.67 events/0
5693 root 20 0 15036 1176 908 R 0.3 0.1 0:03.35 top
Top进程默认是按照CPU来排序的,按大写的M是用内存来排序,按大写的P是按CPU来排序的。
[[email protected] ~]# free -h 专门来查看内存信息
total used free shared buffers cached
Mem: 980M 907M 73M 232K 11M 787M
-/+ buffers/cache: 108M 872M
Swap: 767M 0B 767M
还有一种就是top版的增强版本:
htop 是指增强版的top
iotop 主要查看每个进程使用的io 磁盘使用情况
iftop 显示系统的网络流量
默认这三个命令是没有安装的
[[email protected] ~]# last 显示系统的登录信息,以及该用户登录了多久
root pts/1 10.0.0.1 Wed Nov 14 22:13 still logged in (表示在登陆中)
root pts/0 10.0.0.1 Wed Nov 14 21:14 still logged in
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
reboot system boot 2.6.32-696.el6.x Wed Nov 14 14:08 - 22:43 (08:34)
root pts/0 10.0.0.1 Wed Nov 14 14:02 - down (00:06)
root tty1 Mon Nov 12 00:09 - down (2+13:58)
root pts/7 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/6 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
17:11 表示登录时间
(03:02) 登陆了多久
[[email protected] ~]# lastlog (显示系统最近一次所有的登录情况,这里的登录时指远程登的用户不是切换用户)
Username Port From Latest
root pts/1 10.0.0.1 Wed Nov 14 22:13:25 +0800 2018
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
案例:su 与su – 的区别
[[email protected] ~]# su oldboy
[[email protected] root]$ pwd
/root(su 不加- 切换后家目录还是/root,ls 查看文件的时候还是没有权限)
[[email protected] root]$ whoami
Oldboy
[[email protected] ~]# su – oldboy (加上-后,家目录就会切换到普通用户的家目录下面,普通用户有权限)
[[email protected] ~]$ pwd
/home/oldboy
[[email protected] ~]$ whoami
oldboy
sudo 这个命令是专门为普通用户用的,root 用户是用不着的。
[[email protected] ~]# visudo (:92行找到root在下root行的下面写上普通用户的用户名和执行的命令)
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
oldboy ALL=(ALL) /bin/ls, /bin/touch (给oldboy授权)
[[email protected] ~]# visudo -c (一定要进行语法的检查是否正确)
/etc/sudoers: parsed OK
[[email protected] ~]$ ls /root
ls: cannot open directory /root: Permission denied
[[email protected] ~]$ sudo ls /root/
anaconda-ks.cfg install.log.syslog police.log yangjuncheng.test
[[email protected] ~]$ sudo touch /root/alex.txt
[[email protected] ~]$ sudo ls /root/alex.txt
/root/alex.txt (文件已经创建)
visudo == vim /etc/sudoers
案例:授权/bin/下面普通用户root的权限
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/*(授权/bin下的所有权限)
[[email protected] ~]$ ls /bin (查看发现有su – root )
[[email protected] ~]$ su - root
Password: (没有密码)
[[email protected] ~]$ sudo su – root (这条命令表示具有了root的权限,这样普通用户就直接成root了,非常危险,不能给普通用户这么大的权限)
[sudo] password for oldboy:
[[email protected] ~]# ls /root
案例:授权/bin/下面普通用户root的权限,并且排除su 权限
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/* !/bin/su (表示排除su )
[[email protected] ~]$ sudo su -
Sorry, user oldboy is not allowed to execute ‘/bin/su -‘ as root on oldboy02.(没有权限)
[[email protected] ~]$
因为/bin/目录下面有好多的执行命令这样授权整个目录很危险,最好的办法就是普通用户
需要什么就给什么权限,这样比较安全。精确到某个命令的某个参数。
[[email protected] ~]$ sudo -k(清除缓存)
[[email protected] ~]$ sudo -l
[sudo] password for案例让一个命令在开机的时候自动运行的方法
[[email protected] ~]# vim /etc/init.d/oldboy
[[email protected] ~]# cat /etc/init.d/oldboy
# chkconfig: 2345 99 99
echo aaa(表示脚本的文件内容,oldboy表示开机启动的脚本名称)
[[email protected] ~]# ll /etc/init.d/oldboy
-rw-r--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chmod u+x /etc/init.d/oldboy
[[email protected] ~]# ll /etc/init.d/oldboy
-rwxr--r-- 1 root root 34 Nov 13 22:15 /etc/init.d/oldboy
[[email protected] ~]# chkconfig --add oldboy
[[email protected] ~]# chkconfig |grep oldboy
oldboy 0:off 1:off 2:on 3:on 4:on 5:on 6:off
注解:
[[email protected] ~]# # 案例2 让一个命令在开机的时候自动运行的方法
[[email protected] ~]# (方法1)把这个命令或脚本放到/etc/rc.local 下面
-bash: syntax error near unexpected token `把这个命令或脚本放到/etc/rc.local‘
[[email protected] ~]# #(方法1)把这个命令或脚本放到/etc/rc.local 下面
[[email protected] ~]# #(方法2)该命令通过chkconfig 命令来管理
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 的脚本内容保存退出、
[[email protected] ~]# # ll /etc/init.d/oldboy 发现oldboy默认的权限是644 没有执行权限、所以 chmod +x /etc/init.d/oldboy ^C
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 .脚本内容保存退出、脚本的内容格式的的脚本内容保存退出、脚本的内容格式的开头必须是
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 的脚本内容保存退出、脚本的内容格式的开头必须是 (# chkconfig: 2345 99 99 )这是chkconfig 管理脚本的条件。2345 表示在开机启动的时候级别,运行级别一般是2345,第一个99表示开机 启动的顺序,第二99表示关机的时候的顺序,我们关注的是开机的,一般自己写的脚本放在99这个文职就可以,用 chkconfig --add oldboy
[[email protected] ~]# # 方法1 就是 vim /etc/init.d/oldboy(oldboy 文件名)里面写入要执行 的脚本内容保存退出、脚本的内容格式的开头必须是 (# chkconfig: 2345 99 99 )这是chkconfig 管理脚本的条件。2345 表示在开机启动的时候级别,运行级别一般是2345,第一个99表示开机 启动的顺序,第二99表示关机的时候的顺序,我们关注的是开机的,一般自己写的脚本放在99这个文职就可以,用 chkconfig --add oldboy 加入控制
[[email protected] ~]# #3 chkconfig |grep oldby 检查 2345 上是开机启动的
案例2:一次创建50万文件的方法,必须要用|xargs 否则无法创建
[[email protected] ~]# #echo {1..500000}|xargs touch
[[email protected] ~]# #一次创建50万文件的方法,必须要用|xargs 否则无法创建
[[email protected] ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 580K 330K 250K 57% /
tmpfs 123K 1 123K 1% /dev/shm
/dev/sda1 50K 38 50K 1% /boot
[[email protected] ~]# dev/sda3 580K 330K 250K 57% /
[[email protected] ~]# #查看节点快用完了,
[[email protected] ~]# find / -type d -size +1M|xargs ls -lhd
dr-xr-x---. 2 root root 6.4M Nov 13 21:06 /root
[[email protected] ~]# ls /root |wc -l
282437
[[email protected] ~]# \rm -rf /root
[[email protected] ~]# ls -l
total 0
[[email protected] ~]# #ls |xargs rm -rf 这是删除大量文件的方法。
[[email protected] ~]# #ls -l 查看发现成功了
案例3 创建一个 用户UID是888 不可登陆的 不创建家目录的用户 test
[[email protected] oldboy]# useradd -u 888 -s /sbin/nologin -M test
[[email protected] oldboy]# grep test /etc/passwd
test:x:888:888::/home/test:/sbin/nologin
[[email protected] oldboy]# ls /home/test
ls: cannot access /home/test: No such file or directory(没有创建家目录)
-u 制定UID
-s 不可登陆的
-M 不创建家目录
Test 表示用户
[[email protected] oldboy]# id test
uid=888(test) gid=888(test) groups=888(test)
[[email protected] oldboy]# vim /etc/passwd
#test:x:888:888::/home/test:/sbin/nologin
(#)号表示删除了这个用户
[[email protected] oldboy]# id test
id: test: No such user (显示用户不存在了,相当于用户删掉了但是数据还是在的)
userdel test 默认不会删除用户test的家目录
-r 参数连同用户的test家目录一起删掉了,userdel -r 把用户的信息删除的干干净净
最安全的方法就是在/etc/passwd 下面的用户前面加上一个(#号注释掉,如果有人要用,去掉#号即可这样操作比较安全)
[[email protected] ~]# useradd -u 888 -s /sbin/nologin -M alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888::/home/alex888:/sbin/nologin
[[email protected] ~]# chkconfig postfix off
[[email protected] ~]# usermod -c "xu ni yong hu " alex888
[[email protected] ~]# grep alex888 /etc/passwd
alex888:x:888:888:xu ni yong hu :/home/alex888:/sbin/nologin
[[email protected] ~]# id alex888
uid=888(alex888) gid=888(alex888) groups=888(alex888)
[email protected] ~]# usermod -g oldboy alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy)
改变它的所属oldboy 组的成员
[[email protected] ~]# usermod -G root,oldboy,test alex888
[[email protected] ~]# id alex888
uid=888(alex888) gid=889(oldboy) groups=889(oldboy),0(root),890(test)
属于多个用户组
usermod 主要是用来修改用户的属性信息的
[[email protected] ~]# echo ‘123456‘|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
非交互式的改变用密码 –stdin 表示一次修改密码
--stdin 这个命令只能root才可以用
[[email protected] ~]# history -c 清空历史记录
案例:给文件做一个指纹
[[email protected] ~]# touch oldboy
[[email protected] ~]# echo oldboy >oldboy
[[email protected] ~]# cat oldboy
oldboy
[[email protected] ~]# md5sum oldboy
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# cat oldboy
Oldboy
只有这个文件在发生变化的时候才会起作用
[[email protected] ~]# md5sum oldboy >police.log(放到一个指定的文件中)
[[email protected] ~]# cat police.log
3fe396c01f03425cb5e2da8186eb090d oldboy
[[email protected] ~]# md5sum -c police.log (指纹的对比,如果没有发生变化就是OK的)
oldboy: OK
往文件oldboy里面添加的内容测试
[[email protected] ~]# echo oldboy.txt >>oldboy
[[email protected] ~]# cat oldboy
oldboy
oldboy.txt
[[email protected] ~]# md5sum -c police.log
oldboy: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
oldboy: FAILED 表示文件发生了变化
案例:
批量添加10个用户stu01,stu0……stu10,斌设置8位随机密码;
[[email protected] ~]# useradd -u 999 -s /sbin/nologin -M mysql
[[email protected] ~]# id mysql
uid=999(mysql) gid=999(mysql) groups=999(mysql)
[[email protected] ~]# #添加一个用户MySQL,并指定UID为999 GID为999
在Linux里面只要指定UID后,GID跟UID是一样的,不用加小写的-g
Useradd -g 是指定用户的名字,指定组ID用groupadd -g test 添加到test组里面
案例:模拟一个大文件,用top来查看CPU的负载进程情况
[[email protected] tmp]# dd if=/dev/zero of=/tmp/100 bs=1M count=10009(大文件来模拟)
[[email protected] ~]# top(top来观察进程的负载信息)
top - 22:21:21 up 4:11, 2 users, load average: 1.03, 0.34, 0.13
Tasks: 92 total, 1 running, 90 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1004112k total, 938448k used, 65664k free, 11824k buffers
Swap: 786428k total, 0k used, 786428k free, 814744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 0.3 0.0 0:19.67 events/0
5693 root 20 0 15036 1176 908 R 0.3 0.1 0:03.35 top
Top进程默认是按照CPU来排序的,按大写的M是用内存来排序,按大写的P是按CPU来排序的。
[[email protected] ~]# free -h 专门来查看内存信息
total used free shared buffers cached
Mem: 980M 907M 73M 232K 11M 787M
-/+ buffers/cache: 108M 872M
Swap: 767M 0B 767M
还有一种就是top版的增强版本:
htop 是指增强版的top
iotop 主要查看每个进程使用的io 磁盘使用情况
iftop 显示系统的网络流量
默认这三个命令是没有安装的
[[email protected] ~]# last 显示系统的登录信息,以及该用户登录了多久
root pts/1 10.0.0.1 Wed Nov 14 22:13 still logged in (表示在登陆中)
root pts/0 10.0.0.1 Wed Nov 14 21:14 still logged in
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
reboot system boot 2.6.32-696.el6.x Wed Nov 14 14:08 - 22:43 (08:34)
root pts/0 10.0.0.1 Wed Nov 14 14:02 - down (00:06)
root tty1 Mon Nov 12 00:09 - down (2+13:58)
root pts/7 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/6 10.0.0.1 Sat Nov 10 18:28 - 19:53 (01:25)
root pts/0 10.0.0.1 Wed Nov 14 14:08 - 17:11 (03:02)
17:11 表示登录时间
(03:02) 登陆了多久
[[email protected] ~]# lastlog (显示系统最近一次所有的登录情况,这里的登录时指远程登的用户不是切换用户)
Username Port From Latest
root pts/1 10.0.0.1 Wed Nov 14 22:13:25 +0800 2018
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
案例:su 与su – 的区别
[[email protected] ~]# su oldboy
[[email protected] root]$ pwd
/root(su 不加- 切换后家目录还是/root,ls 查看文件的时候还是没有权限)
[[email protected] root]$ whoami
Oldboy
[[email protected] ~]# su – oldboy (加上-后,家目录就会切换到普通用户的家目录下面,普通用户有权限)
[[email protected] ~]$ pwd
/home/oldboy
[[email protected] ~]$ whoami
oldboy
sudo 这个命令是专门为普通用户用的,root 用户是用不着的。
[[email protected] ~]# visudo (:92行找到root在下root行的下面写上普通用户的用户名和执行的命令)
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
oldboy ALL=(ALL) /bin/ls, /bin/touch (给oldboy授权)
[[email protected] ~]# visudo -c (一定要进行语法的检查是否正确)
/etc/sudoers: parsed OK
[[email protected] ~]$ ls /root
ls: cannot open directory /root: Permission denied
[[email protected] ~]$ sudo ls /root/
anaconda-ks.cfg install.log.syslog police.log yangjuncheng.test
[[email protected] ~]$ sudo touch /root/alex.txt
[[email protected] ~]$ sudo ls /root/alex.txt
/root/alex.txt (文件已经创建)
visudo == vim /etc/sudoers
案例:授权/bin/下面普通用户root的权限
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/*(授权/bin下的所有权限)
[[email protected] ~]$ ls /bin (查看发现有su – root )
[[email protected] ~]$ su - root
Password: (没有密码)
[[email protected] ~]$ sudo su – root (这条命令表示具有了root的权限,这样普通用户就直接成root了,非常危险,不能给普通用户这么大的权限)
[sudo] password for oldboy:
[[email protected] ~]# ls /root
案例:授权/bin/下面普通用户root的权限,并且排除su 权限
[[email protected] ~]# visudo
oldboy ALL=(ALL) /bin/* !/bin/su (表示排除su )
[[email protected] ~]$ sudo su -
Sorry, user oldboy is not allowed to execute ‘/bin/su -‘ as root on oldboy02.(没有权限)
[[email protected] ~]$
因为/bin/目录下面有好多的执行命令这样授权整个目录很危险,最好的办法就是普通用户
需要什么就给什么权限,这样比较安全。精确到某个命令的某个参数。
[[email protected] ~]$ sudo -k(清除缓存)
[[email protected] ~]$ sudo -l
[sudo] password for oldboy:
如果说自己用,或是给上面领导使用的时候就不需要密码
[[email protected] ~]# visudo
oldboy ALL=(ALL) NOPASSWD: ALL
[[email protected] ~]$ sudo su - (直接进入root用户下面,不需要输入密码)
[[email protected] ~]#
国内使用的两个堡垒机是 :gateone jumpserver:
如果说自己用,或是给上面领导使用的时候就不需要密码
[[email protected] ~]# visudo
oldboy ALL=(ALL) NOPASSWD: ALL
[[email protected] ~]$ sudo su - (直接进入root用户下面,不需要输入密码)
[[email protected] ~]#
国内使用的两个堡垒机是 :gateone jumpserver
原文地址:https://www.cnblogs.com/yangjuncheng0826/p/10015379.html