Linux学习第二周

弱龄寄事外,委怀在琴书。这篇文章主要讲述Linux学习第二周相关的知识,希望能为你提供帮助。
文件通配符【Linux学习第二周】文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件
通配符采用特定的符号,表示特定的含义,此符号称为meta字符
Linux系统中定义的字符类:

[:digit:]任意数字,相当于0-9 [:lower:]任意小写字母,表示a-z [:upper:]任意大写字母,表示A-Z [:alpha:]任意大小写字母 常用,记 [:alnum:]任意数字或字母 常用,记 [:blank:]水平空白字符 [:space:]水平或垂直空白字符 [:punct:]标点符号 [:print:]可打印字符 [:cntrl:]控制(非打印)字符 [:graph:]图形字符 [:xdigit:]十六进制字符

复制文件和目录(cp命令)利用cp 命令可以实现文件或目录的复制(往往用于备份)
格式:
cp [OPTION]... [-T] SOURCE DEST复制一个文件到目标改名 cp [OPTION]... SOURCE... DIRECTORY...表示多个源,多个源只能复制到文件夹下 cp [OPTION]...-t DIRECTORY SOURCE...与第二种相反,需要-t,很少用

常用选项:
-i 如果目标已存在,覆盖前提问是否覆盖 -n 不覆盖,注意两者顺序 -r,-R递归复制目录及内部的所有内容。

tr命令tr转换和删除字符
格式
tr [OPTION]... SRT1 [SET2]

用户和组管理 用户
Linux中每个用户是通过User ID(UID)来唯一标识的
  • 管理员:root , 0
  • 普通用户:1-60000 自动分配
    • 系统用户:1-499(CentOS6以前),1-999(CentOS7以后)
    • 登录用户:500+(CentOS6以前),1000+(CentOS7以后)
用户管理命令:
useradd创建账号,默认没有密码 usermod修改账号 userdel删除账号

userdel可以删除Linux用户,常规是指删除账号,保留数据常见选项:
-f, --force强制 -r,--remove删除用户家目录和邮箱

用户组
Linux中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GID)来唯一标识的
  • 管理员组: root ,0
  • 普通组
    • 系统组:1-499(CentOS6以前),1-999(CentOS7以后)
    • 用户组:500+(CentOS6以前),1000+(CentOS7以后)
组管理命令:
groupadd创建组 groupmod修改组 groupdel删除组

用户和组的主要配置文件
通过4个文件存储用户的账号密码
  • /etc/passwd:用户及其属性信息(用户名、UID主组ID,家目录,shell类型)
  • /etc/shadow:用户密码及其相关属性(有效期等信息)
  • /etc/group:组及其属性信息
  • /etc/gshadow:组密码及相关信息
通过passwd可以修改用户的密码,密码存在shadow文件内
passwd[OPTION] 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 显示密码策略

文件权限管理 设置文件所有者chown
chown命令可以修改文件的属主,也可以修改文件属组
格式:
chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE...

用法说明:
OWNER#只修改所有者 OWNER:GROUP#同时修改所有者和属组 :GROUP#只修改属组,冒号也可用.替换 --reference=RFILE#参考指定的属性,来修改 -R#递归,此选项慎用,非常危险!

设定文件特殊属性,约束root误操作
设置文件的特殊属性,可以防止root用户误操作删除或修改的文件。如果文件夹内有特殊属性文件,rm -f无法情况文件夹会报错。
不能删除,改名,更改
chattr +i file chattr -i file删除特殊属性i

只能追加内容,不能删除,改名
chattr +a file chattr -a file删除特殊属性a

显示特定属性
lsattr

访问控制列表ACLAccess control list实现灵活的权限管理
除了文件所有者,所属组和其他人,可以对更多的用户设置权限
ACL相关命令
setfacl 设置ACL权限
getfacl 查看设置的ACL权限
setfacl -m u:user:rwx file| directory

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

2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir /tmp/mytest1/ cp -r /etc/p[[:alpha:]]* /tmp/mytest1/

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

4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2019;
groupadd -g 2019 distro

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

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

(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
passwd mageia Changing password for user mageia. New password: mageedu Retype new password: mageedu passwd: all authentication tokens updated successfully. passwd -x 7 mageiagetent shadow mage mage:$6$pwnDWyCgT68NY0ht$4lqIzZ5Qecy7Ss5hYDJ2DH9KFOf77YeBE0kSMnKDY7cBK9xIefNV8VUahDWyoVR8JdTCtZoIFnObvlsDfjW3./:19110:0:99999:7:::

(5)、删除mandriva,但保留其家目录;
userdel mandriva id mandriva id: ‘mandriva’: no such userll /home drwx------.3 mandriva distro78 May4 20:23 mandriva

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
groupadd peguin useradd -u 2002 -g dostro -G peguin slackware

(7)、修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware
(8)、为用户slackware新增附加组admins,并设置不可登陆。

groupadd admins
usermod -G admins -s /sbin/nologin 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/
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限

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

su - user1
touch /data/test/a1..4.sh
chattr +i a1.sh
chattr +i a2.sh
[root@Centos8 test]# lsattr
----i--------------- ./a1.sh
----i--------------- ./a2.sh
-------------------- ./a3.sh
-------------------- ./a4.sh
chmod 000 a3.sh
chmod 000 a4.sh
root和user1可以对a3,a4.sh文件进行删除
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
usermod -G user1 user3 chmod g 640 /data/test[root@Centos8 ~]# su - user3 [user3@Centos8 ~]$ cd /data/test/ -bash: cd: /data/test/: Permission denied

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


    推荐阅读