前言
身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。
常用命令汇总
用户常用命令
管理员 UID 为0:系统的管理员用户。
系统用户UID 为1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
普通用户 UID 从1000 开始:是由管理员创建的用于日常工作的用户。
useradd 命令
useradd 命令用于创建新的用户,格式为“useradd [选项] 用户名”
[root@localhost ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxwei
[root@localhost ~]# id linuxwei
uid=8888(linuxwei) gid=8888(linuxwei) groups=8888(linuxwei)
groupadd 命令
groupadd 命令用于创建用户组,格式为“groupadd [选项] 群组名”
[root@linux ~]# groupadd ronny
usermod 命令
usermod 命令用于修改用户的属性,格式为“usermod [选项] 用户名”
[root@linuxwei~]# usermod -G root linuxwei
[root@linuxwei~]# id linuxwei
uid=1000(linuxwei) gid=1000(linuxwei) groups=1000(linuxwei),0(root)
[root@linuxwei~]# usermod -u 8888 linuxwei
[root@linuxwei~]# id linuxwei
uid=8888(linuxwei) gid=1000(linuxwei) groups=1000(linuxwei),0(root)
passwd 命令
passwd 命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]
[root@linuxwei~]# passwd
Changing password for user root.
New password: 此处输入密码值
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.
[root@linuxwei~]# passwd linuxwei
Changing password for user linuxwei.
New password: 此处输入密码值
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.
锁定指定用户,请注意解锁时要保证被锁用户有密码否则会失败
[root@localhost ~]# passwd -l linuxwei
Locking password for user linuxwei.
passwd: Success
[root@localhost ~]# passwd -S linuxwei
linuxwei LK 2022-10-13 0 99999 7 -1 (Password locked.)
[root@localhost ~]# passwd -u linuxwei
Unlocking password for user linuxwei.
passwd: Warning: unlocked password would be empty.
passwd: Unsafe operation (use -f to force)
[root@localhost ~]# su - linuxwei
This account is currently not available.
[root@localhost ~]# passwd linuxwei
Changing password for user linuxwei.
New password: 此处输入密码值
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 再次输入进行确认
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd -u linuxwei
Unlocking password for user linuxwei.
passwd: Success
[root@localhost ~]# passwd -S linuxwei
linuxwei PS 2022-10-13 0 99999 7 -1 (Password set, MD5 crypt.)
userdel 命令
userdel 命令用于删除用户,格式为“userdel [选项] 用户名”
[root@localhost ~]# id linuxwei
uid=8888(linuxwei) gid=8888(linuxwei) groups=8888(linuxwei)
[root@localhost ~]# userdel -r linuxwei
[root@localhost ~]# id linuxwei
id: linuxwei: no such user
文件普通权限
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。
rwxrw-r--,数字法表示即为764
类型为普通文件
所有者权限为可读、可写(rw-)
所属组权限为可读(r--)
其他人权限为可读(r--)
文件的磁盘占用大小是34298 字节
最近一次的修改时间为4 月2 日的凌晨23 分
文件的名称为install.log
文件特殊权限
SUID
SUID 权限x改变成s,普通用户临时获得程序所有者的身份
[root@linuxwei~]# ls -l /etc/shadow
----------. 1 root root 1004 Jan 3 06:23 /etc/shadow
[root@linuxwei~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd
SGID
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
[root@localhost tmp]# cd /tmp/
[root@localhost tmp]# mdir testdir/
Can't open /dev/fd0: No such file or directory
Cannot initialize 'A:'
[root@localhost tmp]# cd /tmp/
[root@localhost tmp]# mkdir testdir/
[root@localhost tmp]# ls -ald testdir/
drwxr-xr-x. 2 root root 6 Oct 14 16:36 testdir/
[root@localhost tmp]# chmod -Rf 777 testdir/
[root@localhost tmp]# chmod -Rf g+s testdir/
[root@localhost tmp]# ls -ald testdir/
drwxrwsrwx. 2 root root 6 Oct 14 16:36 testdir/
切换至一个普通用户,然后尝试在该目录中创建文件,会发现属组还是root
chmod 命令
设置文件或目录的权限,格式为“chmod [参数] 权限文件或目录名称”
chown 命令
设置文件或目录的所有者和所属组,其格式为“chown [参数] 所有者:所属组文件或目录名称”
两者均可通过加上大写参数-R 来表示递归操作
[root@linux ~]# chown root:bin test
[root@linux ~]# ls -l test
-rwxrw----. 1 root bin 15 Feb 11 11:50 test
SBIT
SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件,当目录被设置SBIT 特殊权限位后,文件的其他人权限部分的x 执行权限就会被替换成t 或者T,原本有x 执行权限则会写成t,原本没有x 执行权限则会被写成T
[root@linux tmp]# su - linuxwei
Last login: Wed Feb 11 12:41:20 CST 2022 on pts/0
[linux@linux tmp]$ ls -ald /tmp
drwxrwxrwt. 17 root root 4096 Feb 11 13:03 /tmp
对其他目录来设置SBIT 特殊权限位,用chmod 命令就可以了。对应的参数o+t 代表设置SBIT 粘滞位权限,当对某个目录设置了SBIT 粘滞位权限,该目录中的文件只能被其所有者执行删除操作了
文件特殊属性
chattr 命令
chattr 命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”
加权命令
[root@localhost learnlinux]# chattr +a linuxwei
[root@localhost learnlinux]# lsattr linuxwei
-----a---------- linuxwei
减权命令
[root@localhost learnlinux]# chattr -a linuxwei
[root@localhost learnlinux]# lsattr linuxwei
---------------- linuxwei
lsattr 命令
lsattr 命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”
文件访问控制
setfacl 命令
setfacl 命令用于管理文件的ACL 规则,格式为“setfacl [参数] 文件名称”
针对目录文件使用-R 递归参数
针对普通文件使用-m 参数
删除文件的ACL使用-b 参数
[root@linux ~]# setfacl -Rm u:andy:rwx /root
[root@linux ~]# su - andy
Last login: Sat Mar 21 15:45:03 CST 2017 on pts/1
[linux@linux ~]$ cd /root
[linux@linuxroot]$ ls
getfacl 命令
getfacl 命令用于显示文件上设置的ACL 信息,格式为“getfacl 文件名称”
[root@localhost ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:andy:rwx
group::r-x
mask::rwx
other::---
su与sudo服务
su 命令与用户名之间有一个减号(-)完全切换到新的用户,环境变量信息也变更为新用户的相应信息,不保留原始的信息。
sudo 命令把特定命令的执行权限赋予给指定用户
只有 root 管理员才可以使用visudo 命令编辑sudo 服务的配置文件
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表(无需密码)
[root@linux ~]# visudo
...
99 linuxwei ALL=NOPASSWD: /usr/sbin/poweroff
...
结语
简问简答
在RHEL 7 系统中,root 管理员是谁?
答:是UID 为0 的用户,默认是root 管理员
如何使用Linux 系统的命令行来添加或删除用户?
答:添加和删除用户的命令分别是useradd 与userdel
当普通用户使用sudo 命令时是否需要验证密码?
答:系统在默认情况下需要验证当前登录用户的密码,若不想要验证,可添加NOPASSWD参数