Linux用户和组管理以及文件权限

1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。
ls -d /etc/[^[:alpha:]][:alpha:]*

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

[root@centos7 ~]# mkdir /tmp/mytest1
[root@centos7 ~]# cp -a /etc/p*[^[:digit:]] /tmp/mytest1/
[root@centos7 ~]# ll /tmp/mytest1/
total 28
drwxr-xr-x.  2 root root 4096 Dec 18 21:19 pam.d
-rw-r--r--.  1 root root  838 Dec 18 21:19 passwd
-rw-r--r--.  1 root root  838 Dec 18 21:19 passwd-
drwxr-xr-x. 10 root root  116 Dec 18 21:18 pki
drwxr-xr-x.  2 root root   28 Dec 18 21:18 plymouth
drwxr-xr-x.  5 root root   52 Dec 18 21:17 pm
drwxr-xr-x.  2 root root    6 Jun 10  2014 popt.d
drwxr-xr-x.  2 root root  154 Dec 18 21:18 postfix
drwxr-xr-x.  3 root root  123 Dec 18 21:18 ppp
drwxr-xr-x.  2 root root   78 Dec 18 21:18 prelink.conf.d
-rw-r--r--.  1 root root  233 Jun  7  2013 printcap
-rw-r--r--.  1 root root 1819 Apr  1  2020 profile
drwxr-xr-x.  2 root root  251 Dec 18 21:18 profile.d
-rw-r--r--.  1 root root 6545 Apr  1  2020 protocols
drwxr-xr-x.  2 root root   35 Dec 18 21:17 python

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

[root@centos7 ~]# cat /etc/issue | tr ‘[:lower:]‘ ‘[:upper:]‘ > /tmp/issue.out
[root@centos7 ~]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M

[root@centos7 ~]# tr ‘a-z‘ ‘A-Z‘ < /etc/issue > /tmp/issue.log.out
[root@centos7 ~]# cat /tmp/issue.log.out
\S
KERNEL \R ON AN \M

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

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

[root@centos7 ~]# groupadd -g 2019 distro
[root@centos7 ~]# getent group distro
distro:x:2019:

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

[root@centos7 ~]# useradd -u 1005 -g distro mandriva

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

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

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

[root@centos7 ~]# echo mageedu | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
[root@centos7 ~]# chage -M 7 mageia

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

[root@centos7 ~]# userdel mandriva
[root@centos7 ~]# ll /home
total 0
drwx------. 2 mageia mageia 62 Dec 18 23:42 linux
drwx------. 2 lqf    lqf    62 Dec 18 21:17 lqf
drwx------. 2   1005 distro 62 Dec 18 23:39 mandriva

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

[root@centos7 ~]# groupadd peguin
[root@centos7 ~]# getent group peguin
peguin:x:2020:
[root@centos7 ~]# useradd -u 2002 -g distro -G peguin slackware
[root@centos7 ~]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@centos7 ~]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)

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

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

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

[root@centos7 ~]# groupadd admins
[root@centos7 ~]# usermod -aG admins -s /sbin/nolgin slackware
[root@centos7 ~]# id slackware
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)
[root@centos7 ~]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/sbin/nolgin

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

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

[root@centos7 ~]# useradd user1
[root@centos7 ~]# useradd user2
[root@centos7 ~]# useradd user3
[root@centos7 ~]# mkdir /data/test
[root@centos7 ~]# ll /data/test
total 0
[root@centos7 ~]# ll -d /data/test
drwxr-xr-x. 2 root root 6 Dec 19 14:51 /data/test
[root@centos7 ~]# chown user1.user1 /data/test
[root@centos7 ~]# ll -d /data/test
drwxr-xr-x. 2 user1 user1 6 Dec 19 14:51 /data/test

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

[root@centos7 ~]# gpasswd -a user2 user1
Adding user user2 to group user1
[root@centos7 ~]# id user2
uid=1002(user2) gid=1002(user2) groups=1002(user2),1001(user1)
[root@centos7 ~]# chmod g+w /data/test
[root@centos7 ~]# ll -d /data/test
drwxrwxr-x. 2 user1 user1 6 Dec 19 14:51 /data/test
[root@centos7 ~]# su user2
[user2@centos7 root]$ echo ceshi > /data/test/test.log
[user2@centos7 root]$ cat /data/test/test.log
ceshi

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

[root@centos7 ~]# su user1
[user1@centos7 root]$ touch /data/test/a{1..4}.sh
[user1@centos7 root]$ ll /data/test/
total 4
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a1.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a2.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a3.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a4.sh
-rw-rw-r--. 1 user2 user2 6 Dec 19 15:12 test.log
[user1@centos7 root]$ exit
exit
[root@centos7 ~]# chattr +i /data/test/a{1..2}.sh
[root@centos7 ~]# lsattr /data/test/
---------------- /data/test/test.log
----i----------- /data/test/a1.sh
----i----------- /data/test/a2.sh
---------------- /data/test/a3.sh
---------------- /data/test/a4.sh
[root@centos7 ~]# rm -rf /data/test/a1.sh
rm: cannot remove ‘/data/test/a1.sh’: Operation not permitted
[root@centos7 ~]# su user1
[user1@centos7 root]$ rm -rf /data/test/a2.sh
rm: cannot remove ‘/data/test/a2.sh’: Operation not permitted

[root@centos7 data]# chmod o+t test
[root@centos7 data]# ll -d test
drwxrwxr-t. 2 user1 user1 58 Dec 19 15:35 test
[root@centos7 data]# su user2
[user2@centos7 data]$ ll test/
total 0
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a1.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a2.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a3.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a4.sh
[user2@centos7 data]$ rm -rf test/a3.sh
rm: cannot remove ‘test/a3.sh’: Operation not permitted
[user2@centos7 data]$ exit
exit
[root@centos7 data]# su user1
[user1@centos7 data]$ rm -rf test/a3.sh
[user1@centos7 data]$ ll test/
total 0
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a1.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a2.sh
-rw-rw-r--. 1 user1 user1 0 Dec 19 15:22 a4.sh
[user1@centos7 data]$ 

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

[root@centos7 data]# gpasswd -a user3 user1
Adding user user3 to group user1
[root@centos7 data]# id user3
uid=1003(user3) gid=1003(user3) groups=1003(user3),1001(user1)
[root@centos7 data]# setfacl -m u:user3:- test
[root@centos7 data]# getfacl test
# file: test
# owner: user1
# group: user1
# flags: --t
user::rwx
user:user3:---
group::rwx
mask::rwx
other::r-x

[root@centos7 data]# su user3
[user3@centos7 data]$ ll test/
ls: cannot open directory test/: Permission denied

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

[root@centos7 data]# setfacl -Rb test
[root@centos7 data]# getfacl test
# file: test
# owner: user1
# group: user1
# flags: --t
user::rwx
group::rwx
other::r-x

Linux用户和组管理以及文件权限

上一篇:Linux脚本实践


下一篇:Linux下diff命令用法详解