Liunx入门挑战(三)
Linux显示/etc下以非字母开头,后面跟了一个字母以及其他任意长度字符的文件或目录
答:
ls -a /etc/ | grep -E ^[^[:alpha:]][[:alpha:]]*
题目:复制以p或者P开头,以非数字结尾的文件或目录到/tmp/mytest1
答:
#创建文件夹
mkdir /tmp/mytest1
#拷贝文件
cp -r /etc/[pP]*[^[:digit:]] /tmp/mytest1
也可以写成如下格式
mkdir /tmp/mytest1; cp -r /etc/[pP]*[^[:digit:]] /tmp/mytest1
题目:将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
答:
root@CentOS7[16:17:51]:# cat /etc/issue | tr [a-z] [A-Z] >/tmp/issue.out
root@CentOS7[16:18:06]:# cat /tmp/issue.out
\S
KERNEL \R ON AN \M
用户和组管理类命令总结
groupadd命令:创建组
groupadd [ 选项 ] group_name
选项:
-g GID:自定义GID:默认是上一个组的GID+1
-r:创建系统组
groupmod命令:修改组属性
groupmod [ 选项 ] group
选项:
-g GID:修改GID
-n new_name:修改组名
groupdel命令:删除组
groupdel groupname
useradd命令:创建用户
useradd [ 选项 ] 登录名
选项:
-u,--uid UID:指定UID号
-g,--gid GROUP:指定基本组ID,此组必须事先存在
-G,--groups GROUP1,GOURP2 指明用户所属 的附加组,多个组之间用逗号隔开
-c,--comment COMMENT:指明注释信息
-d,--home 家目录绝对路径:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中
-r,--system:创建系统用户
注意:创建用户是的诸多默认设定配置文件为/etc/login.defs
useradd -D:显示创建用户的默认配置
useradd -D 选项: 修改默认选项的值
修改的结果保存于/etc/default/useradd文件中,也可以直接修改此文件使其生效
usermod命令:修改用户属性
usermod [ 选项 ] 登录名
选项:
-u,--uid UID:修改用户UID号
-g,--gid GROUP:修改用户所属的基本组ID,此组必须事先存在
-G,--groups GROUP1,GOURP2 修改用户所属的附加组,原来的附加组会被覆盖
-a,--append:与-G一同使用,用于为用户追加新的附加组
-c,--comment COMMENT:修改注释信息
-d,--home 家目录绝对路径:修改用户的家目录,用户原有的文件不会被转移至新:
-m,--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录
-l,--login NEW_LOGIN:修改用户名
-s,--shell SHELL:修改用户的默认shell
-r,--system:创建系统用户
-L,--lock:锁定用户密码,即在用户原来的密码字符串之前添加一个“!”
-U,--unlock:解锁用户的密码
userdel命令:删除用户
userdel [ 选项 ] 登录名
选项:
-r:删除用户时一并删除其家目录
-f:强制删除用户(用户正在登陆时依旧可以正常操作,logout后无法再登录)
passwd命令:修改用户密码
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
(1)passwd:修改用户自己的密码
(2)passwd USERNAME:修改指定用户的密码。但仅限root有此权限
选项:
-l,-u:锁定和解锁用户
-d:清除用户密码
-e,DATE:过期期限,日期
-i,DAYS:非活动期限,密码过期时还能活动几天
-n,DAYS:密码的最短使用期限
-x,DAYS:密码的最长使用期限
-w,DAYS:警告期限
--stdin:
一条命令修改密码:echo "xxxx" | passwd --stdin username
gpasswd命令:给组添加密码
组密码文件:/etc/gshadow
gpasswd [ 选项 ] group
选项:
-a USERNAME:向组中添加用户
-d USERNAME:从组中移除用户
chage命令:更改用户密码过期信息
chage [ 选项 ] 登录名
选项:
-d DATE:密码最后一次修改曰期(/etc/shadow 文件的第三个字段)
-E DATE:账号失效时间(第八个字段)
-W DAYS:密码修改到期前的警告天数(第六个字段)
-m DAYS:密码的两次修改间隔时间(第四个字段)
-M DAYS:密码的有效期(第五个字段)
id命令:显示用户的真实有效ID
id [ 选项 ] ... [USER]
选项:
-u:仅显示有效的UID
-g:仅显示用户的基本组ID
-G:仅显示用户所属的所有组的ID
-n:显示名字而非ID
su命令:完成用户切换
两种切换方式:
(1)登录式切换:会通过重新读取用户的配置文件来重新初始化
su - USERNAME
su -l USERNAME
(2)非登录式切换:不会读取目标用户的配置文件进行初始化
su USERNAME
注意:管理员可无密码切换至其他任何用户,非管理员切换用户必须输入需要切换的用户的密码
-c 'COMMAND':仅以指定用户的身份运行此处指定的命令
用户和组管理类命令练习
1、创建组distro,其GID为2019 groupadd -g 2019 distro 2、创建用户mandriva, 其ID号为1005;基本组为distro; useradd -u 1005 -g distro mandriva 3、创建用户mageia,其ID号为1100,家目录为/home/linux; useradd mageia -u 1100 -d /home/linux 4、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期 echo mageedu | passwd -x 7 --stdin mageia 5、删除mandriva,但保留其家目录; userdel mandriva 6、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin; groupadd peguin useradd -u 2002 -g distro -G peguin slackware 7、修改slackware的默认shell为/bin/tcsh; chsh -s /bin/tcsh slackware 8、为用户slackware新增附加组admins groupadd admins usermod -G admins slackware