第二周作业-用户及文件管理

本文详细介绍了如何在Linux环境中操作非字母开头的文件、复制特定条件的文件、转换文件内容、以及深入用户和组管理,包括创建用户、组、修改权限、设置密码策略和清理ACL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

[root@localhost ~]#mkdir /etc/123456   创建文件夹

[root@localhost ~]#touch /etc/1209867   创建文件

[root@localhost ~]# ls /etc/[^[:alpha:]]*  筛选出非字母开头的文件或目录

/etc/1209867

/etc/123456:

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

[root@localhost ~]# mkdir /tmp/mytest1    先创建目录mytest1

[root@localhost ~]# ls -d  /tmp/mytest1/  查看是否创建成功

/tmp/mytest1/

[root@localhost mytest1]# cp  -r /etc/p*[:digit:] /tmp/mytest1/ 或cp  -r /etc/p*[^0-9] /tmp/mytest1/ 递归复制以p开头,非0个或多个数字结尾到/tmp/mytest1/

[root@localhost mytest1]# ll /tmp/mytest1/    查看文件

总用量 12

drwxr-xr-x.  2 root root 4096 7月  18 21:00 pam.d

-rw-r--r--.  1 root root 2322 7月  18 21:00 passwd

drwxr-xr-x. 12 root root  151 7月  18 21:00 pki

drwxr-xr-x.  2 root root    6 7月  18 21:00 popt.d

drwxr-xr-x.  2 root root  105 7月  18 21:00 prelink.conf.d

drwxr-xr-x.  2 root root 4096 7月  18 21:00 profile.d

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

[root@localhost ~]# cat /etc/issue      查看源文件信息

\S

Kernel \r on an \m

方法一:

[root@localhost ~]# tr 'a-z' 'A-Z' < /etc/issue | tee /tmp/issue.out > /dev/null   转换小写变大写输入到/etc/issue,通过管道符再输入到/tmp/issue.out,输出内容不显示再终端

方法二:

[root@localhost ~]# tr '[:lower:]' '[:upper:]' </etc/issue >/tmp/issue.out  转换任意小写变大写 输入到/etc/issue,再输出到指定文件夹

[root@localhost ~]# cat /tmp/issue.out  查看转换后的信息

\S

KERNEL \R ON AN \M

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

1.用户概述

用户常见分类

超级用户:root uid和gid值为0 权限最大

普通用户: uid>500  一般权限的系统管理,权限有限

 程序用户:1=uid<500 为提升系统安全性,支持所对应的服务对系统资源的使用,不能用于登录及管理

组账号文件:/etc/passwd:保存用户名称、宿主目录、登录shell等信息

/etc/shadow:保存用户密码及有限期等信息

添加用户:useradd

-u:指定uid标记号

-d:指定宿主目录,默认/home/用户名

-g:指定用户基本组名(或gid号)

-s 指定用户的登录shell

设置或更改用户口令:passwd

-d:清空用户密码

-i:锁定用户密码

-S:查看用户账号状态

-u:解锁用户账号

-e:强制用户下次登录修改密码

修改用户属性:usermod

-c:修改用户帐号的备注文字。

-d:修改用户登入时的目录。

-e:修改帐号的有效期限。

-f: 修改在密码过期后多少天即关闭该帐号。

-g:修改用户所属的群组。

-G:修改用户所属的附加群组。

-l:修改用户帐号名称。

-L:锁定用户密码,使密码无效。

-s:修改用户登入后所使用的shell。

-u:修改用户ID。

-U:解除密码锁定。

修改用户密码策略:chage

-d:指定密码最后修改日期

-E:密码到期的日期,到期后将不可用。0表示马上过期,-1表示永不过期。

-I:密码过期后,锁定账号的天数

-l:列出用户以及密码的有效期

-m:密码可以更改的最小天数。为零代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。

-W:密码过期前,提前收到警告信息的天数。

删除用户:userdel

-r:删除用户同事删除用户宿主目录

-f:强制删除用户,即时用户当前已登录

用户身份切换:su、sudo

su用户之间切换,root向普通用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。

-:选项只使用"-"代表连带用户的环境变量一起切换

-c:仅执行一次命令,而不切换用户身份

sudo 命令用于切换用户执行权限,可使其它非 root 用户具有 root 权限。默认情况下,要求用户使用密码进行身份验证,这是用户密码,不是 root 密码

-i:以目标用户身份运行登录shell

注:需修改/etc/sudoers下在Allow root to run any commands anywhere下添加用户名 ALL=(ALL) NOPASSWD:ALL

显示用户的及所属群组信息:id

-g:显示用户所属群组的ID。

-G:显示用户所属附加群组的ID。

-n:显示用户,所属群组或附加群组的名称。

-r:显示实际ID。

-u:显示用户ID

2.用户组概述

组账号分类:两种

基本组(私有)            附加组(公共)

Gid:组标识号

组账号文件:/etc/group:保存组账号基本信息

/etc/gshadow:保存组账号密码

添加组账号:groupadd

-g:指定新建工作组的 id。

-r:创建系统工作组,系统工作组的组ID小于 500。

-K:覆盖配置文件 "/ect/login.defs"。

-o:允许添加组 ID 号不唯一的工作组。

设置组账号密码、添加、删除组成员:gpasswd

-a:向组内添加一个用户

-d:从组内删除一个用户

-M:定义组成员列表,以,号分隔

删除组账号:groupdel

-R, --root CHROOT_DIR chroot 到的目录

查询当前登录用户信息:w

-h:不打印头信息。

-u:当显示当前进程和cpu时间时忽略用户名。

-s:使用短输出格式。

-f:显示用户从哪登录。

查询当前登录的账号名:who

-H:显示各栏位的标题信息列。

-i或-u或--idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如该用户已超过24小时没有任何动作,则标示出"old"

-q:只显示登入系统的帐号名称和总人数。

查询已登录到主机的用户:whoami

-q用来显示当前登录用户的个数。

用来在命令行里设置ACL(访问控制列表)setfacl

-m:添加当前的ACL条目

-x:删除ACL条目

-R:递归recursive,通常与m进行配合对文件夹下的文件统一处理

-b:清空ACL

改变文件属性:chattr

a: 让文件或目录仅供附加用途

b: 不更新文件或目录的最后存取时间

c: 将文件或目录压缩后存放

d:将文件或目录排除在倾倒操作之前

i: 不得任意更动文件或目录

s: 保密性删除文件或目录

S: 即时更新文件或目录

u: 预防意外删除

-R: 递归处理, 将指令目录下的所有文件以及子目录一并处理

+:开启该项属性

-: 关闭该项属性

=:指定属性

用于显示文件属性lsattr

-a  显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。

-d  显示,目录名称,而非其内容。

-l  此参数目前没有任何作用。

-R  递归处理,将指定目录下的所有文件及子目录一并处理。

3.创建组distro,其GID为2019

[root@localhost ~]# groupadd  -g  2019 distor

[root@localhost ~]# tail -1 /etc/group

distor:x:2019:

4.创建用户mandriva, 其ID号为1005;基本组为distro

[root@localhost ~]# useradd  -u 1005 -g distor mandriva

[root@localhost ~]# tail -1 /etc/passwd

mandriva:x:1005:2019::/home/mandriva:/bin/bash

5.创建用户mageia,其ID号为1100,家目录为/home/linux

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

[root@localhost ~]# tail -1 /etc/passwd

mageia:x:1100:1100::/home/linux:/bin/bash

6.给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期

[root@localhost ~]# echo "mageedu" | passwd --stdin mageia

更改用户 madeia 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@localhost ~]# tail -1 /etc/shadow

mageia:$6$.KaWRFyc$2dVuqe80.sydJT85XcQvTGANWG3gjp/UI.E8gejjokLUNjW.ReKZXSZmXSRi5ZG.4BxiZahNNyi6uJpFD.dHu0:18826:0:99999:7:::

[root@localhost ~]# passwd  -x 7 madeia

调整用户密码老化数据madeia。

passwd: 操作成功

root@localhost ~]# tail -1 /etc/shadow

madeia:$6$.KaWRFyc$2dVuqe80.sydJT85XcQvTGANWG3gjp/UI.E8gejjokLUNjW.ReKZXSZmXSRi5ZG.4BxiZahNNyi6uJpFD.dHu0:18826:0:7:7:::

7.删除mandriva,但保留其家目录

[root@localhost ~]# userdel  mandriva

[root@localhost ~]# ll /home/

总用量 4

drwx------.  3 madeia     madeia       78 7月  18 23:48 linux

drwx------.  3       1005 distor       78 7月  18 23:46 mandriva

drwx------. 16 shaoguohui shaoguohui 4096 7月  19 2021 shaoguohui

8.创建用户slackware,其ID号为2002,基本组为distro,附加组peguin

[root@localhost ~]# groupadd  peguin

[root@localhost ~]# tail -1 /etc/group

peguin:x:2020:slackware

[root@localhost ~]# tail -1 /etc/shadow

slackware:!!:18826:0:99999:7:::

[root@localhost ~]# useradd  -u 2002 -g distor -G peguin  slackware

[root@localhost ~]# id slackware

uid=2002(slackware) gid=2019(distor) 组=2019(distor),2020(peguin)

[root@localhost ~]# tail -1 /etc/passwd

slackware:x:2002:2019::/home/slackware:/bin/bash

9.修改slackware的默认shell为/bin/tcsh

[root@localhost ~]# usermod -s /bin/tcsh slackware

[root@localhost ~]# tail -1 /etc/passwd

slackware:x:2002:2019::/home/slackware:/bin/tcsh

10.为用户slackware新增附加组admins,并设置不可登陆

[root@localhost ~]# id slackware

uid=2002(slackware) gid=2019(distor) 组=2019(distor),2020(peguin)

[root@localhost ~]# groupadd admins

[root@localhost ~]# gpasswd   -a   slackware admins

[root@localhost ~]# id slackware

uid=2002(slackware) gid=2019(distor) 组=2019(distor),2020(peguin),2021(admins)

[root@localhost ~]# usermod slackware -s /sbin/nologin

[root@localhost ~]# tail -1 /etc/passwd

slackware:x:2002:2019::/home/slackware:/sbin/nologin

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

root@localhost ~]# useradd user1

[root@localhost ~]# useradd user2

[root@localhost ~]# useradd user3

[root@localhost ~]# tail -3 /etc/passwd

user1:x:2003:2003::/home/user1:/bin/bash

user2:x:2004:2004::/home/user2:/bin/bash

user3:x:2005:2005::/home/user3:/bin/bash

[root@localhost ~]# mkdir  -p /data/test

12.目录/data/test属主、属组为user1

[root@localhost ~]# ll -d /data/test/

drwxr-xr-x. 2 user1 user1 6 7月  19 00:28 /data/test/

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

[root@localhost ~]# mkdir  -p /data/test

[root@localhost ~]# chown  user1:user1  /data/test/

[root@localhost ~]# ll -d /data/test/

drwxr-xr-x. 2 user1 user1 6 7月  19 00:28 /data/test/

[root@localhost ~]# su - user2

[user2@localhost ~]$ cd /data/

[user2@localhost data]$ ls

test

[user2@localhost data]$ cd test/

[user2@localhost test]$ touch  abc.txt

[user2@localhost test]$ ll

总用量 0

-rw-rw-r--. 1 user2 user2 0 7月  19 00:36 abc.txt

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

user2@localhost ~]$ su - root

密码:

上一次登录:日 7月 18 22:38:52 CST 2021pts/2 上

最后一次失败的登录:一 7月 19 00:41:14 CST 2021pts/2 上

最有一次成功登录后有 1 次失败的登录尝试。

[root@localhost ~]# su - user1

[user1@localhost root]$ cd

[user1@localhost ~]$ cd /data/test/

[user1@localhost test]$ touch  a{1..4}\.sh

[user1@localhost test]$ ll

总用量 0

-rw-rw-r--. 1 user1 user1 0 7月  19 00:43 a1.sh

-rw-rw-r--. 1 user1 user1 0 7月  19 00:43 a2.sh

-rw-rw-r--. 1 user1 user1 0 7月  19 00:43 a3.sh

-rw-rw-r--. 1 user1 user1 0 7月  19 00:43 a4.sh

-rw-rw-r--. 1 user2 user2 0 7月  19 00:36 abc.txt

[root@localhost test]# chmod o+x /data/test/a3.sh  /data/test/a4.sh

[root@localhost test]# chmod o+t /data/test/a3.sh  /data/test/a4.sh

root@localhost test]# chattr  +i a1.sh

[root@localhost test]# chattr  +i a2.sh

[root@localhost test]# lsattr

---------------- ./abc.txt

----i--------e-- ./a1.sh

----i--------e-- ./a2.sh

-------------e-- ./a3.sh

-------------e-- ./a4.sh

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

[root@localhost ~]# cd /data/test/ | usermod -a -G user1 user3

[root@localhost ~]# cd /data/test/

[root@localhost test]# id user3

uid=2005(user3) gid=2005(user3) 组=2005(user3),2003(user1)

[root@localhost test]# chmod g-x /data/test

[root@localhost data]# su user1

[user1@localhost data]$ cd test/

bash: cd: test/: 权限不够

16.清理/data/test目录及其下所有文件的acl权限

[root@localhost ~]#setfacl -R -b /data/test/

[root@localhost ~]# chattr -i /data/test/a1.sh /data/test/a2.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值