第三周作业

1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录

ls -d : 当遇到目录时列出目录本身而非目录内的文件

[[:alpha:]] : 匹配任意单个字母

[^] : 匹配指定集合外的任意单个字符

  • : 匹配任意长度的字符
[root@localhost tmp]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/3asd

2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest2目录中

[root@localhost tmp]# mkdir /tmp/mytest2   #创建/tmp/mytest2
[root@localhost tmp]# cp -r /etc/p*[^[:digit:]] /tmp/mytest2
[root@localhost tmp]# ls /tmp/mytest2/  
pam.d   passwd-       pinforc  plymouth  pnm2ppa.conf  postfix  prelink.conf.d  profile    protocols  purple
passwd  pbm2ppa.conf  pki      pm        popt.d        ppp      printcap        profile.d  pulse      python

&& 表示前一条命令执行成功时,才执行后一条命令

[root@localhost tmp]# mkdir /tmp/mytest2 && cp -r /etc/p*[^[:digit:]] /tmp/mytest2
[root@localhost tmp]# ls /tmp/mytest2/
pam.d   passwd-       pinforc  plymouth  pnm2ppa.conf  postfix  prelink.conf.d  profile    protocols  purple
passwd  pbm2ppa.conf  pki      pm        popt.d        ppp      printcap        profile.d  pulse      python

3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

tee :接收标准输入,并重定向到多个目标 ;tee -a :在文件后面追加,默认为覆盖

[root@localhost tmp]# cat /etc/issue | tr "a-z" "A-Z" | tee /tmp/issue.out
\S
KERNEL \R ON AN \M

[root@localhost tmp]# cat /tmp/issue.out 
\S
KERNEL \R ON AN \M
[root@localhost tmp]# tr "a-z" "A-Z"  /tmp/issue.out 
[root@localhost tmp]# cat /tmp/issue.out 
\S
KERNEL \R ON AN \M
[root@localhost tmp]# (tr "a-z" "A-Z"< /etc/issue) > /tmp/issue.out 
[root@localhost tmp]# cat /tmp/issue.out 
\S
KERNEL \R ON AN \M

4、总结描述用户和组管理类命令的使用方法

cat命令:直接查看配置信息原文件。

[root@localhost tmp]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
......(省略部分内容)......

getent命令: 查看配置文件的全部信息,也可直接查看指定用户或组信息。

[root@localhost tmp]# getent shadow  #查看密码信息
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
[root@localhost tmp]# getent shadow root   #查看指定用户的密码信息
root:$6$.bL84g9K.Qp3mYpi$drCVDSg25sRwVxrfaT8xDL7ebY7oeR/W3QeqA4PXdW0CP5f1sxAVJvtuOi0Bya2r28eeeQFgLd3IO4PFabNgH1::0:99999:7:::

id命令:查看用户的UID和GID以及附属组的GID

[root@localhost tmp]# id root
uid=0(root) gid=0(root) groups=0(root)

groups命令:查看用户属于哪些组中

[root@localhost tmp]# groups root
root : root

管理用户和用户组

useradd :创建用户 语法格式:useradd [options] login

选项 说明
-u uid 指定用户的UID
-c 用户注释信息
g 指明用户所属主要组,可为组名,也可以是UID
-d 以指定路径为用户的家目录
-s 修改用户的默认shell
-G 指定用户的附加组

groupadd : 创建组 语法格式: groupadd [options] GROUP

选项 说明
-f 当组已经存在时,返回成功,使用此项将忽略 -g 选项
-g 指定创建的GID
-h 显示帮助
-K 使用指定值,覆盖/etc/login.defs的默认值
-o 允许使用已存在的GID创建新的组
-p 使用加密的密码
-r 创建系统组

usermod :修改用户的信息 语法格式: usermod [options] LOGIN

选项 说明
-c 修改用户的描述信息,即修改/etc/shadow文件中第五个字段GECOS
-d 修改用户家目录
-e 设置账户有效期,即修改/etc/passwd文件中第八个字段
-f 指定天数,,即修改/etc/shadow文件中第七个字段
-g 修改为指定主组
-G 修改附属组
-a 配合 -G 增加附属组
-h 查看帮助
-l 修改用户名
-L 锁定用户
-m 配合 -d 移动家目录数据到新的家目录
-o 允许使用重复的UID
-p 使用加密的密码
-s 修改使用新的shell类型
-u 修改UID
-U 解锁用户

groupmod :修改组信息 命令格式:groupmod [options] GROUP

选项 说明
-g 修改组的GID
-h 查看帮助
-n 修改组名
-o 允许组的GID不唯一
-p 设置组的加密密码

groupmems :管理指定组成员 命令格式: groupmems [options] [action]

选项 说明
-g 指定要操作修改的那个组
-a 指定添加一个组的成员
-d 指定删除一个组的成员
-l 列出所有的组成员
-p 清空所有的用户
-h 查看帮助

userdel :删除用户
userdel -r :将对应用户的家目录及邮箱文件一起删除
groupdel :删除组
如果要删除的组是某个用户的主要组,则这个组不能删除
练习
(1)、创建组distro,其GID为2019;

[root@localhost tmp]# groupadd -g 2019 distro
[root@localhost tmp]# getent group distro
distro:x:2019:

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;

[root@localhost tmp]# useradd mandriva -u 1005 -g 2019
[root@localhost tmp]# id mandriva
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

[root@localhost tmp]# useradd mageia -u 1100 -d /home/linux
[root@localhost tmp]# finger mageia
Login: mageia                   Name: 
Directory: /home/linux                  Shell: /bin/bash
Never logged in.
No mail.
No Plan.

(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期

[root@localhost tmp]# echo 'mageedu' | passwd -x 7 --stdin mageia
[root@localhost tmp]# getent shadow mageia
mageia:!!:18241:0:7:7:::

(5)、删除mandriva,但保留其家目录;

[root@localhost tmp]# userdel mandriva
[root@localhost tmp]# ll /home/
total 4
drwx------.  3 mageia  mageia    78 Dec 11 21:50 linux
drwx------.  3    1005 distro    78 Dec 11 21:45 mandriva
drwx------.  3 test1   test1     78 Dec 11 19:45 test1
drwx------. 16 wufujie wufujie 4096 Dec  9 18:04 test2

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

[root@localhost tmp]# useradd -g distro -u 2002 -G peguin slackware
useradd: group 'peguin' does not exist
[root@localhost tmp]# groupadd peguin
[root@localhost tmp]# useradd -g distro -u 2002 -G peguin slackware
[root@localhost tmp]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)

(7)、修改slackware的默认shell为/bin/tcsh;

[root@localhost tmp]# usermod -s /bin/tcsh slackware
[root@localhost tmp]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
[root@localhost tmp]# chsh -s /bin/tcsh slackware  #chsh -s:给指定用户修改shell类型
Changing shell for slackware.
Shell changed.

(8)、为用户slackware新增附加组admins;

[root@localhost tmp]# usermod -a -G admins slackware
usermod: group 'admins' does not exist
[root@localhost tmp]# groupadd admins
[root@localhost tmp]# usermod -a -G admins slackware
[root@localhost tmp]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)

你可能感兴趣的:(第三周作业)