显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@centos8 etc]#ls -d /etc/[^[:alpha:]][[:alpha:]]*
ls: cannot access '/etc/[^[:alpha:]][[:alpha:]]*': No such file or directory
[root@centos8 etc]#touch 1a.txt
[root@centos8 etc]#ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1a.txt
[root@centos8 etc]#
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
[root@centos8 etc]#ls -d /etc/p*[^0-9]
/etc/pam.d /etc/passwd /etc/pki /etc/pm /etc/postfix /etc/printcap /etc/profile.d /etc/protocols
/etc/papersize /etc/passwd- /etc/plymouth /etc/popt.d /etc/prelink.conf.d /etc/profile /etc/profilee /etc/ptest.log
将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@centos8 etc]#cat /etc/issue|tr -s 'a-z' 'A-Z' > /tmp/issue.log
[root@centos8 etc]#cat /tmp/issue.log
\S
KERNEL \R ON AN \M
总结描述用户和组管理类命令的使用方法
useradd
命令格式:useradd [options] LOGIN
常见的options:
-u:指定用户的uid
-g:指定用户的主组(组id或者组名)
-G:指定用户的附加组
-d:指定用户的家目录
-s:指定用户的默认shell
-r:创建系统用户
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
-p 指定加密的密码(这里是加密后的密码,而不是普通密码)
usermod
命令格式:usermod [OPTION] LOGIN
常见的options:
-u:修改用户的用户ID
-g:修改用户主组
-G:修改用户的附加组
-s:修改用户的默认的shell
-d:修改用户的家目录
-l:修改用户的用户名
-L:锁定用户
-U:解锁指定的用户
userdel
命令格式:userdel[OPTION] LOGIN
常见的options:
-r:删除用户相关的目录等
-f:强制删除用户
id
命令格式:id [OPTION]... [USER]
常见的options:
-u:显示用户的ID
-g:显示用户的组ID
-G:显示用户所属组的ID
passwd
命令格式:passwd [OPTIONS] UserName
常见的options:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码,Ubuntu无此选项
chage
命令格式:chage [OPTION]... LOGIN
-d LAST_DAY #更改密码的时间
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-I --inactive INACTIVE #密码过期后的宽限期
-E --expiredate EXPIRE_DATE #用户的有效期
-l 显示密码策略
注:可以使用chage +LOGIN 修改
groupadd
命令格式:groupadd [OPTION]... group_name
常见的options:
-g GID 指明GID号 [GID_MIN, GID_MAX]
-r 创建系统组
groupmod
命令格式:groupmod [options] GROUP
常见的options:
-n group_name: 新名字
-g GID: 新的GID
groupdel
命令格式:groupdel[OPTION] GROUP
常见的options:
-f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录
gpasswd
命令格式:gpasswd [OPTION] GROUP
常见的options:
-a user 将user添加至指定组中
-d user 从指定附加组中移除用户user
-A user1,user2,... 设置有管理权限的用户列表
实例:
(1)、创建组distro,其GID为2019;
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
(5)、删除mandriva,但保留其家目录;
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
(7)、修改slackware的默认shell为/bin/tcsh;
[root@centos8 etc]#groupadd -g 2019 distro ##创建组distro,其GID为2019
[root@centos8 etc]#useradd -u 1005 -g distro mandriva ##创建用户mandriva, 其ID号为1005;基本组为distro
[root@centos8 etc]#useradd -u 1100 -d /home/linux mageia ##创建用户mageia,其ID号为1100,家目录为/home/linux
[root@centos8 etc]#echo "test"|passwd --stdin mageia ## 给用户mageia添加密码,密码为test
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
[root@centos8 etc]#chage -M 7 mageia ## mageia ##设置用户密码7天后过期
[root@centos8 etc]#userdel mandriva ##删除用户保留家目录
[root@centos8 etc]#useradd -u 2002 -g distro -G peguin slackware ##创建用户slackware,其ID号为2002,基本组为distro,附加组peguin
[root@centos8 etc]#id -u slackware
2002
[root@centos8 etc]#id -nG slackware
distro peguin
[root@centos8 etc]#usermod -s /bin/tcsh slackware ##修改slackware的默认shell为/bin/tcsh
创建用户user1、user2、user3。在/data/下创建目录test
(1)、目录/data/test属主、属组为user1
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
(5)、清理/data/test目录及其下所有文件的acl权限
[root@centos8 data]#useradd user{1..3} ##创建用户
[root@centos8 /]#mkdir -p /data/test ##常见目录
[root@centos8 /]#chown -R user1.user1 /data/test/ ##修改文件归属用户、组
[user2@centos8 test]$ll
total 4
-rw-r--rw-. 1 root root 6 Jan 1 14:44 a1.sh ##将other用户的权限设置为rw
[root@centos8 test]#chmod o+wr a2.sh ##此命令也可以添加读写权限,r权限已有可忽略
[root@centos8 test]#chattr +i a1.sh
[root@centos8 test]#chattr +i a2.sh #a1.sh、a2.sh 无法被删除
[root@centos8 test]#chmod o+t /data/test/
[root@centos8 data]#usermod -G user1 user3 #user3增加附加组user1
[root@centos8 test]#setfacl -m u:user1:- /data/test/* #user1不能访问/data/test目录及其下所有文件
[root@centos8 test]#setfacl -b /data/test/ ##清除所有的acl权限