案例让一个命令在开机的时候自动运行的方法

[[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

时间: 2024-08-26 06:26:13

案例让一个命令在开机的时候自动运行的方法的相关文章

linux 开机自动运行

1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序.例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window.     2.登录时自动运行程

如何在LINUX中开机、登陆、退出、定时、定期自动运行程序

1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序.例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window. 2.登录时自动运行程序 用户登录时,bash首先自动执行系

ubuntu14.04 开机自动运行应用程序

ubuntu14.04 开机自动运行应用程序 - ydt_lwj的专栏 - 博客频道 - CSDN.NET ubuntu下有很多中开机自动运行程序的方法,在开机的不同过程中可以启动不同的程序.如在开机启动时自动运行程序,是通过修改放置在 ???? /etc/rc或 ???? /etc/rc.d 或 ???? /etc/rc?.d ?? 目录下的脚本文件,可以使init自动启动其它程序.例如:编辑 ???? /etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本), 也可以在用

Win10怎么添加开机启动项?Win10添加开机自动运行软件三种方法

Win10管理开机启动项的方法相信大家已经非常熟悉,msconfig命令各系统都通用,那么很多用户发觉Win10和Win7 XP等系统不同,没有启动文件夹,那么我们怎么添加开机启动项呢?如晨软件或程序没有开机启动设置的话,是的,在Win10中添加开机启动项虽然麻烦了些,但是还是可以设置的,下面小编就分享几种方法. 方法一:开机启动文件夹 1.我们打开文件夹:C:\Users(用户)\Administrator(当前用户名)\AppData\Roaming\Microsoft\Windows\St

Android开机自动运行APP——BroadcastReceiver

前言: 有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以"Don't call me, I'll call you back!"总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景: 手机开机后,自动运行程序. {只是最近本人在做万达大歌星点餐系统,需要用到系统启动直接启动App避免服务员玩别的app才研究的,

Android---让你的APK程序开机自动运行(转)

转自: http://blog.sina.com.cn/s/blog_72f6e45701014l6t.html 有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call you back!”总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景:手机开机后,自动运行程序,在屏幕上

Android实现开机自动运行程序

有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call you back!”总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景:手机开机后,自动运行程序,在屏幕上显示"Hello. Istarted!"字样. 背景知识:当Android启动时,会发出一个系统广播,内

[VC]VC实现开机自动运行程序

有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预.这里,提供一种让程序开机自动运行的方法.见下面代码: BOOL CXXX::SetAutoRun(CString strPath) { CString str; HKEY hRegKey; BOOL bResult; str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &

openSUSE下开机自动运行脚本命令的方法

在/etc/init.d/boot.local文件中添加命令.RedHat系统的对应文件是/etc/rc.d/rc.local. 对于Linux系统启动时自动运行的命令或程序,在rh-basedlinux系统,一般常见是放在/etc/rc.d/rc.local中.但SuSELinux没有这个文件,另外也不推荐使用者这样管理启动服务.推荐使用正规的方式来管理服务启动方式. 有人会说,在SuSE系统里,可以放在/etc/init.d/boot.local中,这要看实际情况.因为SuSE的/etc/i