Linux用户组和权限管理
1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@localhost data]# ll #因/etc下没有符合条件的目录,自己生成了3个文件
total 0
-rw-r--r--. 1 root root 0 Dec 21 10:00 123.txt
-rw-r--r--. 1 root root 0 Dec 21 10:00 1a45fg.txt
-rw-r--r--. 1 root root 0 Dec 21 10:00 adf.txt
[root@localhost data]# ls -d /data/[^[:alpha:]][[:alpha:]]*
/data/1a45fg.txt
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@localhost data]# ll
total 0
drwxr-xr-x. 2 root root 6 Dec 21 11:45 123
drwxr-xr-x. 2 root root 6 Dec 21 11:45 1a345
drwxr-xr-x. 2 root root 6 Dec 21 11:45 p123
drwxr-xr-x. 2 root root 6 Dec 21 11:45 p123def
[root@localhost data]# ls -d /data/p*[^[:digit:]]
/data/p123def
[root@localhost data]# cp -r /data/p*[^[:digit:]] /tmp/mytest1/
[root@localhost data]# ll /tmp/mytest1/
total 0
drwxr-xr-x. 2 root root 6 Dec 21 11:51 p123def
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@localhost ~]# cat /data/issue | tr 'a-z' 'A-Z' > /data/issue.out
[root@localhost ~]# cat /data/issue
\S
Kernel \r on an \m
[root@localhost ~]# cat /data/issue.out
\S
KERNEL \R ON AN \M
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2019;
groupadd -g 2019 distro
getent group distro
distro:x:2019:
(2)、创建用户mandriva,其ID号为1005;基本组为distro;
useradd -u 1005 -g distro mandriva
getent passwd mandriva
mandriva:x:1005:2019::/home/mandriva:/bin/bash
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux mageia
getent passwd
mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
echo mageedu | passwd --stdin mageia
passwd -x 7 mageia
Adjusting aging data for user mageia.
passwd: Success
getent shadow mageia
mageia:$6$gQiiDk6ItBirZXFw$z4I9HdJ8a0/0ck4P5GjnxWY8rjjUaYwYiiOKLve.PLvRW96vrMJb3hVHzbZSzGzV5qFlEtIxKGJ9NSdI3gLYh0:18620:0:7:7:::
(5)、删除mandriva, 但保留其家目录;
[root@localhost ~]# userdel mandriva
[root@localhost ~]# ll /home/
total 0
drwx------. 3 mageia mageia 78 Dec 24 11:47 linux
drwx------. 3 1005 distro 78 Dec 24 11:43 mandriva
drwx------. 4 nn nn 129 Dec 22 17:42 nn
drwx------. 4 nn1hao nn1hao 113 Dec 21 17:21 nn1hao
(6)、创建用户slackware,其ID号为2002,基本组为distro, 附加组peguin;
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost ~]# getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
(7)、修改slackware的默认shell为/bin/tcsh;
[root@localhost ~]# chsh -s /bin/tcsh
(8)、为用户slackware新增附加组admins,并设置不可登陆。
usermod -a -G admins -s /sbin/nologin slackware
[root@localhost ~]# getent group admins
admins:x:2021:slackware
5、创建用户user1、user2、 user3。 在/data/ 下创建目录test
useradd user1;useradd user2;useradd user3;mkdir /data/test
(1)、目录/data/test属主、 属组为user1
chown user1:user1 /data/test/
ll -d /data/test/
drwxr-xr-x. 2 user1 user1 6 Dec 24 13:58 /data/test/
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
[root@localhost ~]# setfacl -m u:user2:rw /data/test/
[root@localhost ~]# 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
(3)、user1在/data/test目录 下创建文件a1.sh,a2.sh,a3.sh,a4.sh,设置所有用户都不可删;
[root@localhost test]# su user1
[user1@localhost test]$ touch a{1..4}.sh
[user1@localhost test]$ ll
total 0
-rw-rw-r--. 1 user1 user1 0 Dec 24 14:16 a1.sh
-rw-rw-r--. 1 user1 user1 0 Dec 24 14:16 a2.sh
-rw-rw-r--. 1 user1 user1 0 Dec 24 14:16 a3.sh
-rw-rw-r--. 1 user1 user1 0 Dec 24 14:16 a4.sh
[user1@localhost test]$ chmod o=rx /data/test/*
除1.sh, 2.sh文件、除了user1及root之外,所有用户都不可删除日a3.sh,a4.sh
[user1@localhost test]$ setfacl -m u:user1:rwx a1.sh a2.sh
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
setfacl -R -m g:user1:0 /data/test/*
(5)、清理/data/test目录及 其下所有文件的acd权限
[root@localhost test]# setfacl -R -b /data/test/