就业第二周-练习

1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@Rocky8-mini3 etc]# !mkdir
mkdir _al
[root@Rocky8-mini3 etc]#  ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/_al

2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@Rocky8-mini3 ~]# mkdir /tmp/mytest1
[root@Rocky8-mini3 ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
[root@Rocky8-mini3 ~]# ls /tmp/mytest1/
pam.d  passwd  passwd-  pki  plymouth  pm  popt.d  prelink.conf.d  printcap  profile  profile.d  protocols

3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@Rocky8-mini3 ~]# tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out
[root@Rocky8-mini3 ~]# cat /tmp/issue.out
\S
KERNEL \R ON AN \M


4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2019;
[root@Rocky8-mini3 ~]# groupadd -g 2019 distro
[root@Rocky8-mini3 ~]# getent group distro
distro:x:2019:

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@Rocky8-mini3 ~]# useradd -u 1005 -g distro mandriva
[root@Rocky8-mini3 ~]# id mandriva 
uid=1005(mandriva) gid=2019(distro) groups=2019(distro)

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@Rocky8-mini3 ~]# useradd -u 1005 -g distro mandriva
[root@Rocky8-mini3 ~]# grep mageia /etc/passwd  
mageia:x:1100:1100::/home/linux:/bin/bash

(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@Rocky8-mini3 ~]# echo "mageedu" | passwd -x 7 --stdin mageia 
Adjusting aging data for user mageia.
passwd: Success

(5)、删除mandriva,但保留其家目录;
[root@Rocky8-mini3 ~]# userdel mandriva
[root@Rocky8-mini3 ~]# ls /home/
linux  mandriva

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@Rocky8-mini3 ~]# groupadd peguin
[root@Rocky8-mini3 ~]# useradd slackware -u 2002 -g distro -G peguin
[root@Rocky8-mini3 ~]# id slackware 
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)

(7)、修改slackware的默认shell为/bin/tcsh;
[root@Rocky8-mini3 ~]# usermod -s /bin/tcsh slackware 
[root@Rocky8-mini3 ~]# grep slackware /etc/passwd
slackware:x:2002:2019::/home/slackware:/bin/tcsh

(8)、为用户slackware新增附加组admins,并设置不可登陆。
[root@Rocky8-mini3 ~]# groupadd admins
[root@Rocky8-mini3 ~]# usermod -aG admins -s /sbin/nologin slackware 
[root@Rocky8-mini3 ~]# grep slackware /etc/passwd
slackware:x:2002:2019::/home/slackware:/sbin/nologin
[root@Rocky8-mini3 ~]# id slackware 
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin),2021(admins)

5、创建用户user1、user2、user3。在/data/下创建目录test
(1)、目录/data/test属主、属组为user1
[root@Rocky8-mini3 data]# chown user1:user1 /data/test/
[root@Rocky8-mini3 data]# ll -d /data/test/
drwxr-xr-x 2 user1 user1 4096 Mar 13 05:11 /data/test/

(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
[root@Rocky8-mini3 test]# touch test
[root@Rocky8-mini3 test]# setfacl -m u:user2:rw /data/test/test

(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
[user1@Rocky8-mini3 test]$ ll
total 0
-rw-rw-r-- 1 user1 user1 0 Mar 13 07:44 a1.sh
-rw-rw-r-- 1 user1 user1 0 Mar 13 07:44 a2.sh
-rw-rw-r-- 1 user1 user1 0 Mar 13 07:44 a3.sh
-rw-rw-r-- 1 user1 user1 0 Mar 13 07:44 a4.sh
[root@Rocky8-mini3 test]# chattr +i /data/test/a1.sh a2.sh
[root@Rocky8-mini3 test]# getfacl /data/test/a3.sh a4.sh 
getfacl: Removing leading '/' from absolute path names
# file: data/test/a3.sh
# owner: user1
# group: user1
user::rw-
group::rw-
other::r--

# file: a4.sh
# owner: user1
# group: user1
user::rw-
group::rw-
other::r--


(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
[root@Rocky8-mini3 test]# usermod -aG user1 user3
[root@Rocky8-mini3 test]# id user3
uid=2005(user3) gid=2005(user3) groups=2005(user3),2003(user1)
[root@Rocky8-mini3 ~]# chmod -R 044 /data/test/

(5)、清理/data/test目录及其下所有文件的acl权限
[root@Rocky8-mini3 test]# setfacl -Rb /data/test/
[root@Rocky8-mini3 test]# chattr -i  /data/test/a1.sh a2.sh

用户和组管理类命令

(1)useradd 用户创建

useradd [options] LOGIN
	-u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs
 	-g GID:指明用户所属基本组,可为组名,也可以GID;
 	-c "COMMENT":用户的注释信息;
 	-d /PATH/TO/HOME_DIR: 以指定的路径为家目录;
 	-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;
 	-G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;
	-r:创建系统用户
		CentOS 6: ID<500
 		CentOS 7: ID<1000
默认值设定:/etc/default/useradd文件中
		useradd -D
 	 			-s SHELL

练习:创建用户 gentoo,附加组为distro和linux,默认shell为 /bin/csh,注释信息为"Gentoo Distribution"

[root@laptop-u5s7ejrh ~]# useradd gentoo -G distro,linux -s /bin/csh -c "Gentoo Distribution"

(2)groupadd 组的创建

groupadd [OPTION]... group_name
	-g GID: 指明GID号;[GID_MIN, GID_MAX]
 	-r: 创建系统组;
 		CentOS 6: ID<500
 	 	CentOS 7: ID<1000

(3)id 查看用户相关的ID信息

id [OPTION]... [USER]
	-u: UID
 	-g: GID
 	-G: Groups
 	-n: Name

(4)su 用户的切换或以其他用户身份执行命令

su [options...] [-] [user [args...]]
切换用户的方式:
	su UserName:非登录式切换,即不会读取目标用户的配置文件;
 	su -UserName:登录式切换,会读取目标用户的配置文件;完全切换;
注:root su至其他用户无须密码;非root用户切换时需要密码;
换个身份执行命令:
 	su [-] UserName -c 'COMMAND'
 		-l:“su -l UserName”相当于“su -UserName”

(5)usermod 用户属性修改

usermod [options] LOGIN
    -u UID: 新UID
    -g GID: 新基本组
    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
 	-s SHELL:新的默认SHELL;
 	-c 'COMMENT':新的注释信息;
 	-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
 	-l login_name: 新的名字;
 	-L: lock指定用户
 	-U: unlock指定用户
 	-e YYYY-MM-DD: 指明用户账号过期日期;
 	-f INACTIVE: 设定非活动期限;

(6)passwd 给用户添加密码

passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
passwd: 修改自己的密码;
常用选项:
    -l: 锁定指定用户
    -u: 解锁指定用户
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -i inactivedays:非活动期限;
    --stdin:从标准输入接收用户密码;
   		echo "PASSWORD" | passwd
    --stdin USERNAME
    Note: /dev/null, bit buckets
   		 /dev/zero

(7)userdel 删除用户

userdel [OPTION]... login
	-r: 删除用户家目录;

(8)groupmod 组属性修改

groupmod [OPTION]... group
    -n group_name: 新名字
    -g GID: 新的GID

(9)groupdel 组删除

groupdel GROUP

(10)gpasswd 组密码

gpasswd [OPTION] GROUP
    -a user: 将user添加至指定组中;
    -d user: 删除用户user的以当前组为组名的附加组
    -A user1,user2,...: 设置有管理权限的用户列表
newgrp命令:临时切换基本组;
	如果用户本不属于此组,则需要组密码

(11)chage 修改用户属性

chage [OPTION]... LOGIN
    -d LAST_DAY
    -E, --expiredate EXPIRE_DATE
    -I, --inactive INACTIVE
    -m, --mindays MIN_DAYS
    -M, --maxdays MAX_DAYS
    -W, --warndays WARN_DAYS


用户及权限管理

1、文件的权限主要针对三类对象进行定义

​ owner:属主,u group:属组,g other:其它,o

2、每个文件针对没类访问者都定义了三种权限(括号中为对应的数字表示法):

​ r:读(4) w:写(2) x:执行(1)

3、chmod 修改文件权限

[root@laptop-u5s7ejrh mnt]# chmod 721 file1
[root@laptop-u5s7ejrh mnt]# ll file1
-rwx-w---x. 1 root root 41 Aug  3 02:59 file1
[root@laptop-u5s7ejrh mnt]# chmod u-w,g+r file1
[root@laptop-u5s7ejrh mnt]# ll file1
-r-xrw---x. 1 root root 41 Aug  3 02:59 file1

4、chown 修改文件的属主和属组

[root@laptop-u5s7ejrh home]# ll /mnt/file1
-r-xrw---x. 1 root root 41 Aug  3 02:59 /mnt/file1
[root@laptop-u5s7ejrh home]# chown wuhao.wh /mnt/file1
[root@laptop-u5s7ejrh home]# ll /mnt/file1
-r-xrw---x. 1 wuhao wh 41 Aug  3 02:59 /mnt/file1

5、chgrp 修改文件的属组

[root@laptop-u5s7ejrh home]# chgrp root /mnt/file1
[root@laptop-u5s7ejrh home]# ll /mnt/file1
-r-xrw---x. 1 wuhao root 41 Aug  3 02:59 /mnt/file1

6、umask 文件或目录创建时的遮罩码,表示要减去的权限

Note:创建的是文件,会自动减去它的执行权限,目录则不会
[root@laptop-u5s7ejrh mnt]# umask
0022
[root@laptop-u5s7ejrh ~]# ll /mnt/file1              // 777 - 022 - x = 644
-rw-r--r--. 1 root root 170 Aug  4 04:37 /mnt/file1
[root@laptop-u5s7ejrh ~]# ll -d /mnt                 // 777 - 022 = 754
drwxr-xr-x. 10 root root 181 Aug  4 05:07 /mnt        
posted @   wuhaolam  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示