Linux学习第二周

Posted 网工转运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

访问控制列表ACL

Access 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 mageia

getent shadow mage
mage:$6$pwnDWyCgT68NY0ht$4lqIzZ5Qecy7Ss5hYDJ2DH9KFOf77YeBE0kSMnKDY7cBK9xIefNV8VUahDWyoVR8JdTCtZoIFnObvlsDfjW3./:19110:0:99999:7:::

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

userdel mandriva
id mandriva
id: ‘mandriva’: no such user

ll /home
drwx------.  3 mandriva distro    78 May  4 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

以上是关于Linux学习第二周的主要内容,如果未能解决你的问题,请参考以下文章

Linux第二周学习笔记

Linux第二周学习笔记(12)

Linux第二周学习笔记

Linux SRE课程第二周作业

Linux学习笔记第二周第四次课(2月1日)

Linux学习笔记第二周第四次课(2月1日)