第二周作业

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

root@node02 etc]# touch 1.txt
[root@node02 etc]# touch 12.txt
[root@node02 etc]# touch 1a.txt
[root@node02 etc]# touch 1abc.txt
[root@node02 etc]# ls -d [^[:alpha:]][:alpha:]*     #解释 [:alpha:] 任意字母,不区分大小写, ^ 是取非  -d 显示目录本身信息,不包括目录里边的信息

1abc.txt 1a.txt
[root@node02 etc]#

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

[root@node02 /]# mkdir /tmp/mytest1
[root@node02 /]# cp /etc/p*[^0-9] /tmp/mytest1
cp: omitting directory ‘/etc/pam.d’
cp: omitting directory ‘/etc/pki’
cp: omitting directory ‘/etc/plymouth’
cp: omitting directory ‘/etc/pm’
cp: omitting directory ‘/etc/popt.d’
cp: omitting directory ‘/etc/postfix’
cp: omitting directory ‘/etc/ppp’
cp: omitting directory ‘/etc/prelink.conf.d’
cp: omitting directory ‘/etc/profile.d’
cp: omitting directory ‘/etc/python’


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

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

[root@node02 /]# cat /etc/issue
\S
Kernel \r on an \m

4、请总结描述用户和组管理类命令的使用方法并完成以下练习:

用户组:

增groupadd 删 groupdel 改 groupmod 查 groups 可查看用户组关系

     groupadd [选项] group-name  选项:-g(指明GID号) 和-r(创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000)

     groupdel  [选项] group             选项:-f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录

     groupmod  [选项]  group          选项:-n group_name: 新名字    和  -g GID: 新的GID

     groups [OPTION].[USERNAME]...

  更改组密码 gpasswd 

gpasswd [OPTION] GROUP   选项:
  -a user 将user添加至指定组中
  -d user 从指定附加组中移除用户user
  -A user1,user2,... 设置有管理权限的用户列表

临时切换组:newgrp 命令可以临时切换主组, 如果用户本不属于此组,则需要组密码

附加组:groupmems 可以管理附加组的成员关系
 
用户:增useradd  删 userdel  改  usermod 查 id
   useradd [options] LOGIN 选项:-u UID
               -o 配合-u 选项,不检查UID的唯一性
               -g GID 指明用户所属基本组,可为组名,也可以GID
               -c "COMMENT“ 用户的注释信息
               -d HOME_DIR 以指定的路径(不存在)为家目录
               -s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
               -G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
               -N 不创建私用组做主组,使用users组做主组
               -r 创建系统用户 CentOS 6之前: ID<500,CentOS7 以后: ID<1000
               -m 创建家目录,用于系统用户
               -M 不创建家目录,用于非系统用户
               -p 指定加密的密码
  userdel [OPTION]... Login  选项 :-f, --force   强制    -r, --remove 删除用户家目录和邮箱
  usermod [OPTION] login   选项:-u UID: 新UID
                 -g GID: 新主组
                 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
                 -s SHELL:新的默认SHELL
                 -c 'COMMENT':新的注释信息
                 -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
                 -l login_name: 新的名字
                 -L: lock指定用户,在/etc/shadow 密码栏的增加 !
                 -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
                 -e YYYY-MM-DD: 指明用户账号过期日期
                 -f INACTIVE: 设定非活动期限,即宽限期
 
  id [OPTION]... [USER]      选项:-u: 显示UID
                  -g: 显示GID
                  -G: 显示用户所属的组的ID
                  -n: 显示名称,需配合ugG使用
 
设置密码passwd 
passwd [OPTIONS] UserName  选项:
                -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 显示密码策略
 

(1)、创建组distro,其GID为2019;

[root@node02 /]# groupadd -g 2019 distro

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

[root@node02 /]# useradd -u 1005 -g distro mandriva

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

[root@node02 /]# useradd -u 1100 -d /home/linux mageia


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

[root@node02 /]# passwd mageia   #更改密码,密码需要输入两遍
Changing password for user mageia.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node02 /]# chage -E 2022-3-16 mageia  #设置有效期到7天后
[root@node02 /]# chage -l mageia    #显示密码策略
Last password change : Mar 09, 2022
Password expires : never
Password inactive : never
Account expires : Mar 16, 2022
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@node02 /]#


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

[root@node02 /]# userdel mandriva
[root@node02 /]# ls /home
linux mandriva
[root@node02 /]#

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

[root@node02 /]# groupadd peguin
[root@node02 /]# useradd -u 2002 -g distro -G peguin slackware
[root@node02 /]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
[root@node02 /]#

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

[root@node02 /]# usermod -s /bin/tcsh slackware
[root@node02 /]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/tcsh
[root@node02 /]#


(8)、为用户slackware新增附加组admins,并设置不可登陆。

[root@node02 /]# groupadd admins
[root@node02 /]# gpasswd -a slackware admins  #添加用户到组
Adding user slackware to group admins
[root@node02 /]# usermod -s /bin/nologin slackware  #建立的用户禁止ssh 登录,恢复的话用  usermod -s /bin/bash slackware ( slackware 是用户名)
[root@node02 /]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)
[root@node02 /]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/nologin
[root@node02 /]#


5、创建用户user1、user2、user3。在/data/下创建目录test

[root@node02 /]# useradd user1;useradd user2;useradd user3;
[root@node02 /]# id user1;id user2;id user3;
uid=2003(user1) gid=2003(user1) groups=2003(user1)
uid=2004(user2) gid=2004(user2) groups=2004(user2)
uid=2005(user3) gid=2005(user3) groups=2005(user3)
[root@node02 /]# mkdir /data/test

(1)、目录/data/test属主、属组为user1

[root@node02 data]# chown user1:user1 /data/test
[root@node02 data]# ll
total 0
drwxr-xr-x. 2 user1 user1 6 Mar 9 22:31 test
[root@node02 data]#


(2)、在目录属主、属组不变的情况下,user2对文件有读写权限

[root@node02 data]# getfacl /data/test
getfacl: Removing leading '/' from absolute path names
# file: data/test
# owner: user1
# group: user1
user::rwx
group::r-x
other::r-x

[root@node02 data]# setfacl -m u:user2:rw /data/test
[root@node02 data]# getfacl /data/test
getfacl: Removing leading '/' from absolute path names
# file: data/test
# owner: user1
# group: user1
user::rwx
user:user2:rw-
group::r-x
mask::rwx
other::r-x

[root@node02 data]#


(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh

[root@node02 /]# su user1
[user1@node02 /]$ touch /data/test/a{1..4}.sh
[user1@node02 /]$ ls /data/test/
a1.sh a2.sh a3.sh a4.sh
[user1@node02 /]$ exit
exit
[root@node02 /]# chattr +i /data/test/a{1..2}.sh
[root@node02 /]# lsattr /data/test/
----i----------- /data/test/a1.sh
----i----------- /data/test/a2.sh
---------------- /data/test/a3.sh
---------------- /data/test/a4.sh
[root@node02 /]# chmod o+t /data/test/a{3..4}.sh
[root@node02 /]# ll /data/test/
total 0
-rw-rw-r--. 1 user1 user1 0 Mar 9 22:58 a1.sh
-rw-rw-r--. 1 user1 user1 0 Mar 9 22:58 a2.sh
-rw-rw-r-T. 1 user1 user1 0 Mar 9 22:58 a3.sh
-rw-rw-r-T. 1 user1 user1 0 Mar 9 22:58 a4.sh
[root@node02 /]#


(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件

[root@node02 /]# gpasswd -a user3 user1
Adding user user3 to group user1
[root@node02 /]# id user3
[root@node02 /]# chmod -R o=--- /data/test
chmod: changing permissions of ‘/data/test/a1.sh’: Operation not permitted
chmod: changing permissions of ‘/data/test/a2.sh’: Operation not permitted
[root@node02 /]#


(5)、清理/data/test目录及其下所有文件的acl权限

[root@node02 /]# setfacl -R -b /data/test
[root@node02 /]# getfacl /data/test/
getfacl: Removing leading '/' from absolute path names
# file: data/test/
# owner: user1
# group: user1
user::rwx
group::r-x
other::---

[root@node02 /]#

 

posted @ 2022-03-09 23:24  是阿帅不是阿衰  阅读(18)  评论(0编辑  收藏  举报