第2周(老王视频)-作业

1、描述linux目录结构以及目录结构命名规定
1)linux目录结构
常用文件系统(FHS Filesystem Hierarchy standard文件系统层级结构标准)
/boot系统启动(引导)文件、内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录如:kernel(vmlinuz)、ramdisk(centos5:initrd.img;centos6:initramfs.img)
/etc配置文件目录
/etc/X11 如果安装Xwindows的话
/etc/skel 用户目录中文件(都是隐藏.文件)
/home/USERNAME:普通用户家目录 cd ~用户名 进入用户家目录
/root:管理员的家目录
/proc 内核和进程信息的虚拟(伪)文件系统接口(内核映射文件)(系统调优及监控常用的目录)
/proc/cpuinfo,/proc/meminfo,/proc/swaps /proc/sys,/proc/scsi/scsi /proc/tty,/proc/version
/sys 硬件设备信息的虚拟(伪)文件系统接口(跟硬件设备相关的属性映射文件)(系统调优及监控常用的目录)
echo '- - -' > /sys/class/fc_host/host/port_name (此文件只有w权限,没有r权限)识别新硬盘
echo '- - -' > /sys/class/scsi_host/host
/port_name
/bin “系统自身启动相关的”用户命令(普通用户和管理员都能使用),不能关联至独立分区,OS启动即会用到的程序
/sbin(System binaries) “系统自身启动相关的”管理命令(普通用户无权使用),不能关联至独立分区,OS启动即会用到的程序
/usr/bin(“系统自身启动起来后”“提供的基本功能的”用户命令),如:passwd
/usr/sbin(“系统自身启动起来后”“提供的基本功能的”管理命令),如:useradd
/usr/local/bin,/usr/loca/sbin第三方程序目录(默认目录中没文件)
/lib,/lib64库文件(.so都具有x可执行权限,但不能单独执行,需被调用才能执行)和内核模块文件(/lib/modules), 存放的是/bin和/sbin目录下程序所需的库文件;
/usr/lib,/usr/lib64用户程序的库文件
/usr/local/lib,/usr/local/lib64第三方程序目录(默认目录中没文件)
/usr/share/man
/usr/share/doc
帮助文件
/opt Add-on(附加的,可选的) application早期第三方程序安装目录(现在第三方程序放在:/usr/local目录下)
/srv:系统上运行的服务用到的数据
/usr(unix system/software resources ,universal shared readonly全局共享只读) 所有程序目录,/usr 里的所有文件一般来自Linux distribution;(/usr中的目录与/下的目录有点像),子目录如下:
1)bin: 保证系统拥有完整功能而提供的应用程序
2)sbin:
3)lib:32位使用
4)lib64:只存在64位系统
5)include: C程序的头文件(header files)
6)share:结构化独立的数据,例如doc, man等
7)local:第三方应用程序的安装位置
/var(variable data files) 经常发生变化的文件,如:/var/log,/var/spool(邮件),/var/www,任务计划

  1. cache: 应用程序缓存数据目录

  2. lib: 应用程序状态信息数据

3)local:专用于为/usr/local下的应用程序存储可变数据;
4)lock: 锁文件
5)log: 日志目录及文件
6)opt: 专用于为/opt下的应用程序存储可变数据;
7)run: 运行中的进程相关数据,通常用于存储进程pid文件
8)spool: 应用程序数据池
9)/var/tmp: (粘着位目录)临时文件目录,保存系统两次重启之间产生的临时数据
/tmp(粘着位目录,一个月后若没有访问这个目录,自动删除其中内容)
/dev设备文件(Device files),分为:
1)b(block)块设备(随机设备,随机访问,数据块),如:/dev/sda1, /dev/sr0(光盘,/dev/cdrom是其软链接)
2)c(character)字符设备(线性设备,线性<即有序, 有先后顺序>访问,按字符为单位),如:/dev/zero,/dev/null ,/dev/tty1,/dev/pts/0, 鼠标,键盘,显示器
设备文件:只有元数据,没有数据,即文件没有大小,ll命令列出的“大小列”对应:主(major)设备号和次(minor)设备号(两者用逗号分隔)
/media:便携式移动设备挂载点, 如:cdrom,u盘
/mnt:临时文件系统挂载点
/tmp:临时文件存储位置
/misc 备用目录(杂项)
/lost+foud 存放一些“系统出错的检查结果”
/selinux Security Enhanced Linux安全加强的linux
/etc/selinux/config 配置文件

2)目录结构命名规定
linux中(标准linux文件系统如:ext4)文件名称和命令区分大小写(与C语言保持一致),windows中文件名称和命令不区分大小写,故:linux中挂windows的分区(fat32,ntfs),是不区分大小写的
所有文件都位于根目录下,路径以/(下边的斜线,与windows是上边的斜线\)作为分隔符
文件名最长不能超过255个字节(包括路径在内文件名称最长4095个字节),
除了斜杠/和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
一个目录:就是一个名称空间
绝对路径:从“顶级名称空间”起始标记的路径
相对路径:从非顶级,缺省路径从“当前路径(./或./可以省略)”开始
蓝色-->目录 浅蓝色-->链接文件 绿色-->可执行文件 红色-->压缩文件即打包文件(如:.tgz,.zip,.rpm) 灰色-->其他(普通)文件
cat /etc/DIR_COLORS 定义了不同后缀文件的颜色(不建议修改)

2、显示/etc目录下,所有以.d结尾的文件或目录ls /etc/*.d -d

3、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录ls /etc/[m,n,r,p]*.conf

4、创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限mkdir -p /app/rootdir;cp -a /root/. /app/rootdir

5、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, qz
mkdir -pv {a1/{a,b},a2}
mkdir -pv /tmp/{x,q}
{y,z}

6、总结用户、用户组管理命令并演示命令以及常见用法
useradd–D -s SHELL 修改新创建用户的默认shell,与直接vi /etc/default/useradd效果相同
useradd–D –b BASE_DIR 修改新创建用户的默认家目录路径
useradd–D –g GROUP 修改使用useradd -N新创建用户的默认主组(默认是:users)

/etc/group和/etc/gshadow最后一个字段的内容(即用户列表)必须相同
GECOS:用户全名或注释,可使用chfn 用户名 修改(包括:用户名,office,office电话,home电话),使用finger j具体用户名 查看注释信息
chfn -f '' -o '' -p '' -h '' 用户名 清除注释信息
chsh -s /sbin/nologin 用户名 之后不能登录(输入密码后又回到了登录界面)也不能从root用户su过去
chage 用户名 修改密码过期时间
-d LAST_DAY 设置密码最后修改时间 chage -d0 用户 (通过将密码最后一次修改时间设置为0)设置登录时必须修改密码
–l 显示密码策略 小写字母L chage -l 用户名 查看过期时间(显示为具体日期)
-m --mindaysMIN_DAYS
-M --maxdaysMAX_DAYS
-W --warndaysWARN_DAYS
-E --expiredate EXPIRE_DATE 修改账号在指定时间(yyy-mm-dd格式或+days格式或-days格式 )过期
-I --inactive INACTIVE (到期后再过多少天密码被锁定)大写字母I

newusers passwd格式相同的文件(可以复制/etc/passwd中的文件然后修改) 批量创建用户 newusers userlist.txt
chpasswd 批量修改用户口令 echo nginx:abcd1234 | chpasswd或cat passwdlist.txt | chpasswd 注:passwdlist文件一行一条记录,每条记录的格式为:username:明文密码

切换用户:
1)newgrp 用户组员 使用普通用户临时将当前用户自己的主组变更为指定的用户组(若指定的组不在该用户的附加组中需输入组密码,否则不许输入组密码)
此时touch文件:属主是当前用户,属组是指定的用户主组
exit退出后,当前用户的主组恢复原来与用户名同名的主组
2)换个身份(如su - -c 'cat /etc/shadow'普通用户以root身份执行命令)执行命令:su[-] UserName-c 'COMMAND'

useradd[options] LOGINUserName
-u UID 指定uid useradd -u 1234 yxh04
-o 配合-u 选项,不检查UID的唯一性(uid相同的用户权限相同) useradd -ou 1234 yxh07 注:o不能放在u和具体id之间
-g 具体GID或组名:指明用户所属基本组,可为组名,也可以GID useradd -g 982 app3
-N 不创建私用组做主组,使用users组(组id为100,系统默认存在的组)做主组 useradd -N app4
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在 useradd -g bin -G yxh01,yxh02 user01 使用groups user01查看用户所属组(第一个是主组,后边的几个是附加组groups)
-d HOME_DIR: 以指定的路径(默认不存在会自动创建在/home下)为家目录 useradd -d /data/yxh09 yxh09
-r: 创建系统用户(/home下没生成家目录;一般设置nologin,不允许登录;root用户也无法su过去) CentOS 6: ID<500,CentOS 7: ID<1000 useradd -r app2 -s /sbin/noglin
-m 指定系统用户(系统用户默认不创建家目录)创建家目录 useradd -r -m test04
-M 指定非系统用户(/etc/login.defs定义默认非系统用户会自动创建家目录)不创建家目录 useradd -M test05
-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中
-c "COMMENT":用户的注释信息 useradd -c "web user" -r -s /sbin/nologin web 应用程序用户一般是系统用户且不允许登录

用户属性修改 usermod[OPTION] loginname
-u UID: 新UID
-l login_name: 新的登录用户名 公司新员工接替离职员工,可以直接将老员工用户的登录用户名修改成新员工的,因为uid未变,故新员工继承老员工的所有权限
-g GID: 新主组 usermod -g alice app 修改用户主组
usermod -G test04,test05 app 只用-G会覆盖原来的附加组
usermod -aG yxh01,bin,root,test05 app 使用-aG(a一定要再G前边)再原来附加组基础上追加新的附加组
usermod -G 用户主组 user01 或u sermod -G "" user01 清空用户的附加组即:使用用户主组(主组本身就是附加组中的第一个组)覆盖附加组或使用空覆盖附加组
-s SHELL:新的默认SHELL
-c 'COMMENT':新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项

userdel user01 只删除用户(/home下家目录和/var/spool/mail都不删除)
userdel -r user01 同时删除用户和/home下家目录和/var/spool/mail

创建组groupadd[OPTION]... group_name
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组 groupadd -g 2001 -r g2
CentOS 6: ID<500
CentOS 7: ID<1000
组属性修改:groupmod[OPTION]... group
-n group_name: 新名字
-g GID: 新的GID groupmod -g 3000 -n newg1 g1
组删除:groupdel GROUP groupdel g2 注:不能删除有用户作为主组的用户组

配置账号或密码过期:
1)usermod:
-L, --lock This puts a '!' in front of the encrypted password 有密码的用户加锁后,其无法登陆操作系统(但root用户可以su到此用户)
-p, --password PASSWORD 不建议使用,否则密码被看到
-U, --unlock This removes the '!' in front of the encrypted password
(1)有密码的用户加锁后可以解锁;
(2)(通过vi /etc/shadow将!!删除的)空密码用户(使用usermod -L,多了一个!)加锁后无法解锁
(3)(新创建的)无密码用户(密码为!!)无法解锁(centos5时候可以使用两次usermod -U解锁,即去掉两个!)
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限(即多长时间后账号锁定)
2)设置密码passwd[OPTIONS] UserName: 修改指定用户的密码
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
passwd -e yxh01或chage -d0 yxh02 (通过设置/etc/shadow中“密码最近一次被更改的时间”改为0)强制用户下次登录修改密码(先输入旧密码后,提示必须输入新修改的密码)
-f:强制操作
-n mindays:指定最短使用期限 与chage 具体用户用户名 效果相同
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-iinactivedays:非活动期限
--stdin:从标准输入接收用户密码 echo "PASSWORD" | passwd --stdin USERNAME 可以使用
2)更改组密码gpasswd[OPTION] GROUP
gpasswd 用户组 给用户组设定密码 cat /etc/gshadow 发现上边用户组已经有加密密码了(不再是默认的!,表示未设置密码)
gpasswd -r 用户组 删除用户组密码
-a user 将user添加至指定附加组中 gpasswd -a yxh01 sales
-d user 从指定组中移除用户user gpasswd -d yxh01 sales
-A user1,user2,... 设置有管理权限的用户列表
3)修改用户密码策略chage[OPTION]... LOGIN
chage 用户名 修改密码过期时间
-d LAST_DAY 设置密码最后修改时间 passwd -e yxh01或chage -d0 yxh02 (通过设置/etc/shadow中“密码最近一次被更改的时间”改为0)强制用户下次登录修改密码(先输入旧密码后,提示必须输入新修改的密码)
–l 显示密码策略 小写字母L chage -l 用户名 查看过期时间(显示为具体日期)
-m --mindaysMIN_DAYS
-M --maxdaysMAX_DAYS
-W --warndaysWARN_DAYS
-E --expiredate EXPIRE_DATE 修改账号在指定时间(yyy-mm-dd格式或+days格式或-days格式 )过期
-I --inactive INACTIVE (到期后再过多少天密码被锁定)大写字母I
示例:
chage-m 0 –M 42 –W 14 –I 7 tom 修改账号密码的策略
chage-E 2016-09-10 tom 修改账号在指定时间过期

1)查看用户信息:
(1)id user01 -u显示用户,-g显示主组(第一个是主组名),-n显示用户名或主组名
(2)cat /etc/passwd
(3)getent user01 user02
(4)GECOS:用户全名或注释,可使用chfn 用户名 修改(包括:用户名,office,office电话,home电话),使用finger j具体用户名 查看注释信息
chfn -f '' -o '' -p '' -h '' 用户名 清除注释信息
2)查看组信息:
(1)cat /etc/group
(2)getent group group01 group02 查看一个或多个group信息
(3)更改和查看组成员groupmems [options] [action]
options:
-g, --group groupname更改为指定组(只有root)
Actions:
-a, --add username 指定用户加入组 groupmems -a yxh01 -g admin 使用管理员将用户yxh01加入admin组中(yxh01用户需重新登录才能看到新加的组)
-d, --delete username 从组中删除用户 groupmems -d yxh01 -g admin 使用管理员将用户yxh01从admin组中删除
-p, --purge 从组中清除所有成员 groupmems -p -g group01
groupmes -l, --list 显示组成员列表 groupmems -l -g group01
(4)groups [OPTION].[USERNAME]... 查看用户所属组列表(第一个组是用户所属主组)

修改组成员关系:
1)useradd 创建用户时指定组
-g 具体GID或组名:指明用户所属基本组,可为组名,也可以GID useradd -g 982 app3
-N 不创建私用组做主组,使用users组(组id为100,系统默认存在的组)做主组 useradd -N app4
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在 useradd -g bin -G yxh01,yxh02 user01 使用groups user01查看用户所属组(第一个是主组,后边的几个是附加组groups)
2)usermod 修改用户组
usermod -g alice app 修改用户主组
usermod -G test04,test05 app 只用-G会覆盖原来的附加组
usermod -aG yxh01,bin,root,test05 app 使用-aG(a一定要再G前边)再原来附加组基础上追加新的附加组
usermod -G 用户主组 user01 或u sermod -G "" user01 清空用户的附加组即:使用用户主组(主组本身就是附加组中的第一个组)覆盖附加组或使用空覆盖附加组
3)gpasswd 修改用户组
gpasswd -a yxh01 group01 将用户加入附加组
gpasswd -d yxh01 gropu01 从组中删除用户
4)groupmems: 修改用户组
groupmems -a yxh01 -g admin 使用管理员将用户yxh01加入admin组中(yxh01用户需重新登录才能看到新加的组)
groupmems -d yxh01 -g admin 使用管理员将用户yxh01从admin组中删除
getent group admin yxh01 查看一个或多个group信息

7、文件权限,属主属组管理命令有哪些,并演示命令以及用法
[admin@centos7 data]$chmod u=rwx f1
[root@centos7 data]#chmod a-x /usr/bin/cat
[root@centos7 data]#chmod --reference f1 dir/f5 将后边文件的权限设置为与前边文件一致
修改拥有者和所属组(-R递归):
chown admin f1 修改拥有者
chgrp root f1 修改所属组
chown root:root f1或chown root.root f1 同时修改拥有者和所属组
chown root. f1 .在后表示将f1的拥有者和所属组都改为root
[root@centos7 data]#chown root. f1
chown .admin f1 .在前表示只将f1的所属组都改为admin
[root@centos7 data]#chown .admin f1

SUID: user,占据属主的执行权限位
s:属主拥有x权限
S:属主没有x权限
SGID: group,占据属组的执行权限位
s:group拥有x权限
S:group没有x权限
Sticky: other,占据other的执行权限位
t:other拥有x权限
T:other没有x权限
1)SUID(Set User ID, 文件的拥有者的x权限变为s权限,用数字4表示,只能针对二进制可执行文件设置权限,不能针对文本和脚本设置权限)权限,功能:
当用户执行此二进制文件时,会继承此文件所有者的权限
2)SGID(Set Group ID, 文件的所属组的x权限变为s权限,用数字2表示,只能针对二进制可执行文件设置权限,不能针对文本和脚本设置权限)权限,功能:
当用户执行此二进制文件时,会继承此文件所属组的权限
3)Sticky(对应数字1,将其他用户o的x权限替换为t权限,只能针对目录设置权限)权限,功能:只能删除目录中自己创建的文件

chattr扩展元数据属性(配置root用户不能对文件进行某些操作)
chattr 具体文件名 显示文件chattr扩展元数据属性(ls -l看不到这种属性)
chattr +i 具体文件名 加i权限:root能cat 文件内容,但root不能:mv改名,删除rm(root用户只能删除父目录中别的没有i权限的文件,无法删除整个父目录),vim,>>追加和>覆盖
chattr -i 具体文件名 去掉i权限
chattr +a 具体文件名 加a权限:root能cat文件内容和>>追加,但root不能:mv改名,删除rm,vim和>覆盖
chattr -a 具体文件名 去掉a权限

ACL(Access Control List)(ext4,xfs都支持,但fat不支持),实现灵活的权限管理(实现某一个用户不能访问,但other中的其他用户还能访问)
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7默认创建的xfs和ext4文件系统具有ACL功能
CentOS7之前版本,默认 (如:fdisk命令)手工创建的ext4文件系统无ACL功能,需手动增加
tune2fs不能针对xfs文件系统,只适合ext系列文件系统:
tune2fs -l /dev/sda3 查看某分区是否有acl功能(结果含有acl关键字说明有acl功能)
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test

df -T多显示了文件系统类型这一列
setfacl:set file ACL(Access Control List)
setfacl -m u:wang:- f1或setfacl -m u:wang:0 f1 针对某用户设置不能访问(rwx权限都没有)文件f1
setfacl -m u:wang:rw f1 设置某用户对某文件有rw权限
setfacl -R -m d:u:wang:rwx dir2 root用户在此目录中新建文件(default)拥有acl权限(wang:rwx)

8、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 "Gentoo Distribution"
#useradd -G bin,root -c "Gentoo Distribution" -s /bin/csh gentoo

转载于:https://blog.51cto.com/8029052/2371961

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值