1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@centos7 scripts45]#ll -d /etc/[^[:alpha:]][[:alpha:]]*
drwxr-xr-x 2 root root 6 Apr 25 18:11 /etc/1o
-rw-r--r-- 1 root root 0 Apr 25 18:11 /etc/1p
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@centos7 scripts45]#mkdir /tmp/mytest1
[root@centos7 scripts45]#cp -r /etc/p*[^0-9] /tmp/mytest1
[root@centos7scripts45]#ls /tmp/mytest1
pam.d passwd- pki pnm2ppa.conf ppp profile pulse
papersize pbm2ppa.conf plymouth popt.d prelink.conf.d profile.d purple
passwd pinforc pm postfix printcap protocols python
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@centos7 scripts45]#cat /etc/issue |tr ‘a-z‘ ‘A-Z‘ >/tmp/iss.out
[root@centos7 scripts45]#cat /tmp/iss.out
TIME AT \T
TERMINAL IN \L
HOSTNAME IS \N
\S
KERNEL \R ON AN \M
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
用户管理类命令:useradd usermod userdel
组管理类命令:groupadd groupmod groupdel
其他相关命令:passwd id su
修改密码:chage| gpasswd
权限:chown| chgrp |chmod
权限:chattr| lsattr
facl权限:
useradd [选项] [参数]
useradd -u UID user1 #创建用户指定UID
useradd -g distro user1 #创建用户并指定用户的基本组为distro,基本组事先必须存在
useradd -c "注释信息" user1 #创建用户并添加注释信息
useradd -s /bin/bash user1 #创建用户并指定类型为bash
useradd -r mandriva #创建系统用户为Mandriva 系统用户uid
useradd -u 0 -o user1 #创建user1并指定UID为0,忽略uid的唯一性,格式固定,短选项不能合并,否则报错。
useradd -d DIR user1 #创建user1,指定用户的家目录,家目录事先不存在
useradd -G distro user1 #创建user1,指定用户的附加组,附加组事先必须存在
useradd -m DIR user1 #创建user1,并创建用户家目录。
useradd -M DIR user1 #创建user1,不创建用户家目录
usermod [选项] [参数]
usermod -u UID user1 #user1指明新的UID
usermod -g gID user1 #user1指明新的基本组
usermod -G GID group #指明新的基本组,如果要保留原来的附加组,需要加-a选项
usermod -c "注释信息" user1 #修改用户注释信息
usermod -s /bin/csh user1 #修改用户默认shell为csh
usermod -d DIR user1 #更改用户的家目录,加-m选项会把旧家目录文件转移到新家目录中,不加-m,默认不转移
usermod -l newname user1 #更改名字
usermod -L user1 #锁定用户user1,锁定之后仅root可以访问
usermod -U user1 #解锁用户
usermod -e 2020-05-16 user11 #指明用户账号user11 账号过期时间
user11:$6$gwhHpGjq$7p9HF0siHVX38K/HlNZ48/V2HB4U3mNV7G3Dy4l9dUH3G7Ee6qNG.8EfZFUP553GK4sbVcIH29HtibwzaT4qr1:18396:0:99999:7::18398:
usermod -f 2 user11 #指明账号过期后,还有2天的时间的宽限期。
[root@centos7 ~]#getent shadow user11
user11:$6$gwhHpGjq$7p9HF0siHVX38K/HlNZ48/V2HB4U3mNV7G3Dy4l9dUH3G7Ee6qNG.8EfZFUP553GK4sbVcIH29HtibwzaT4qr1:18396:0:99999:7:2:18398:
userdel [选项] [参数]
userdel -r 用户 #删除用户和家目录
groupadd [选项] [参数]
groupadd user11 #创建组
groupadd -r user12 #创建系统组
groupadd -g 3112 user1 #创建组,指明gid
groupmod [选项] [参数]
groupmod -n adm admin #把组名admin改为adm
groupdel [选项] [参数]
groupdel adm #删除组
当用户存在时,用户的主组是无法删除的。
passwd [选项] [参数]
[root@centos7 ~]#passwd --help 忘记选项可以查看 不过选项大多数仅root有权限
[root@centos7 ~]#usermod -L user11
[root@centos7 ~]#getent shadow user11
user11:!$6$gwhHpGjq$7p9HF0siHVX38K/HlNZ48/V2HB4U3mNV7G3Dy4l9dUH3G7Ee6qNG.8EfZFUP553GK4sbVcIH29HtibwzaT4qr1:18396:0:99999:7:2:18397:
[root@centos7 ~]#passwd -l user11
Locking password for user user11.
passwd: Success
[root@centos7 ~]#getent shadow user11
user11:!!$6$gwhHpGjq$7p9HF0siHVX38K/HlNZ48/V2HB4U3mNV7G3Dy4l9dUH3G7Ee6qNG.8EfZFUP553GK4sbVcIH29HtibwzaT4qr1:18396:0:99999:7:2:18397:
passwd -l user1 :锁定用户
passwd -u user1 :解锁用户
passwd -n 1 :更新密码后至少1天内不能修改密码,0表示:随时修改
passwd -x 90 :密码最大使用期限90天,99999:表示永不过期
passwd -w 7 :密码过期前7天开始提示。
passwd -i 2 :非活动期限,密码过期后还有2天的宽限期。
passwd -S user11:查看用户的关于密码的信息
echo "centos" | passwd --stdin user11 从标准输入读取 给user11创建密码。
id [选项] [参数]
[root@centos7 ~]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)
[root@centos7 ~]#id -u slackware
2002
[root@centos7 ~]#id -g slackware
2019
[root@centos7 ~]#id -G slackware
2019 2020 2021
chage [选项] [参数]
chage -h 查看密码选项
chage -d 1 #修改密码最后1次更新的时间,距离1970-
chage -E 99999 user11 #账户过期日期,99999永不过期
chage -i 3 user11 #账户过期后的宽限期
chage -m 1 user11 #密码使用最小期限
chage -M 7 user11 #密码使用最大期限
chage -W 2 user11 #密码过期前2天的警告
chage -l user11 #显示密码相关信息
gpasswd [选项] [参数]
gpasswd -a user11 user1 #把用户user1 添加到组user11中
gpasswd -d user11 user1 #把用户user1 在组user11删除
newgroup 临时切换基本组。如果用户不属于此组,需要组密码
chown [选项] [参数]
修改文件的属主和属组
[root@centos7 ~]#chown user11:user11 1
[root@centos7 ~]#chown :root 1 # :可以用.替换
-rw-r--r-- 1 user11 root 9 Apr 27 08:40 1
[root@centos7 ~]#chown user11:user11 z
[root@centos7 ~]#chown --reference=z z1 #z1文件参考z文件的属主和属组修改
[root@centos7 ~]#ll z z1
-rw-r--r-- 1 user11 user11 0 Apr 27 10:25 z
-rw-r--r-- 1 user11 user11 0 Apr 27 10:25 z1
[root@centos7 tmp]#chown -R user11:user11 1/ #递归修改文件夹里文件的属主和属组
[root@centos7 1]#ll
-rw-r--r-- 1 user11 user11 0 May 14 11:04 a1
-rw-r--r-- 1 user11 user11 0 May 14 11:04 a2
-rw-r--r-- 1 user11 user11 0 May 14 11:04 a3
chgrp [选项] [参数]
chgrp -R 递归修改属组
chmod [选项] [参数]
权限数字法:
rwx 4 2 1
[root@centos7 1]#chmod 755 dir #创建目录权限默认755
[root@centos7 1]#chmod 644 file #创建文件权限默认644
chmod u= g= o= ug= uo= go= a= #指明属主属组的权限
chmod u+- g+- o+- a+- #增加属主属组的权限
chmod --reference=file file2
file2的权限修改为同file文件的权限
权限:chattr| lsattr
chattr +a file #只能向文件中添加数据
chattr -i file #设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。
i参数对于文件 系统的安全设置有很大帮助。
lsattr 查看文件特殊属性
[root@centos7 1]#lsattr /etc/issue
---------------- /etc/issue
getfacl 查看facl权限 后面跟文件名或目录
[root@centos7 ~]#getfacl 1
# file: 1
# owner: user11
# group: root
user::rw-
user:root:rwx
user:user9:rw-
group::r--
mask::rwx
other::r--
[root@centos7 ~]#setfacl -m u:xie:rwx 1 #设置文件1 用户xie拥有rwx权限。
[root@centos7 ~]#getfacl 1 | grep xie
user:xie:rwx
[root@centos7 ~]#setfacl -m g:user11:rwx 1 #设置文件1 在组user11中,并拥有rwx权限
[root@centos7 ~]#getfacl 1 | grep user11
group:user11:rwx
[root@centos7 ~]#setfacl -m u::rw-
[root@centos7 ~]#getfacl 1 | grep user:: #设置默认用户是没有权限
user::rw
[root@centos7 ~]#setfacl -m g::rw-
[root@centos7 ~]#getfacl 1 | grep group:: #设置默认组是没有权限
group::rw
[root@centos7 ~]#setfacl -b 1 #清除文件1所有facl权限。
[root@centos7 ~]#setfacl -x u:user11:rwx 1 #删除文件1的中的某个权限
mask 只影响设置了setfacl权限中的ug,other跟所有者不受影响。
mask 相当于一条权限高压线,facl权限下的ug的权限只能小于等于mask设置的默认权限
权限的匹配顺序
1.看所有者的权限
2.看ACL权限
看所有者
看所属租
3.看other
权限一旦匹配到了就不会再找了。
setfacl 备份和恢复
[root@centos7 ~]#getfacl -R 1 > acl.txt 备份文件1的acl
[root@centos7 ~]#setfacl -R -b 1 #还原文件1 原来的权限
[root@centos7 ~]#getfacl 1
# file: 1
# owner: user11
# group: root
user::---
group::---
other::r--
[root@centos7 ~]#setfacl --restore acl.txt #还原文件1的ACL文件权限。
[root@centos7 ~]#getfacl 1
# file: 1
# owner: user11
# group: root
user::---
user:user11:rw-
group::---
mask::rw-
other::r--
(1)、创建组distro,其GID为2019;
[root@centos7 ~]#groupadd -g 2019 distro
(2)、创建用户mandriva,?其ID号为1005;基本组为distro;
[root@centos7 ~]#useradd mandriva -u 1005 -g distro
[root@centos7 ~]#tail -1 /etc/passwd
mandriva:x:1005:2019::/home/mandriva:/bin/bash
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@centos7 ~]#useradd -u 1100 -d /home/linux mageia
[root@centos7 ~]#tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@centos7 ~]#echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
[root@centos7 ~]#tail -1 /etc/shadow
mageia:$6$W2iiTgPH$eQvLc0QBr8kKnN/d/l4Su/xL7cBeFPWK7vzHZYcps15uz8KIqduRdQ2tuKdcBLBEDSQjGRERl/sljs2qWbJh41:18384:0:7:7:::
(5)、删除mandriva,但保留其家目录;
[root@centos7 home]#userdel mandriva
[root@centos7 mandriva]#ls -a
. .. .bash_logout .bash_profile .bashrc .mozilla
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@centos7 ~]#groupadd peguin
[root@centos7 ~]#tail -1 /etc/group
peguin:x:2020:
[root@centos7 ~]#useradd -u 2002 -g distro -G peguin slackware
[root@centos7 ~]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
(7)、修改slackware的默认shell为/bin/tcsh;
[root@centos7 ~]#tail -1 /etc/passwd
slackware:x:2002:2019::/home/slackware:/bin/bash
方法1:
[root@centos7 ~]#chsh -s /bin/tcsh slackware
Changing shell for slackware.
Shell changed.
[root@centos7 ~]#tail -1 /etc/passwd
slackware:x:2002:2019::/home/slackware:/bin/tcsh
方法2:
[root@centos7 ~]#usermod -s /bin/tcsh slackware
[root@centos7 ~]#tail -1 /etc/passwd
slackware:x:2002:2019::/home/slackware:/bin/tcsh
(8)、为用户slackware新增附加组admins;
[root@centos7 ~]#usermod slackware -G peguin,admins
[root@centos7 ~]#id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)