Linux文件、用户及权限管理

一、文件管理
Linux文件和目录被组织成一个单根倒置树结构,文件系统从根目录开始,用“/”表示。
1、文件系统中的主要目录及功能
/boot:引导文件的存放目录,内核文件、引导加载器都存放于此目录。
/bin:所有用户使用的基本命令;不能关联至独立分区,系统启动即会用到的程序。
/sbin:管理类的基本命令;不能关联至独立分区,系统启动即会用到的程序。
/lib:启动时程序依赖的基本共享库文件以及内核模块文件。
/lib64:专用于x86_64系统上的辅助共享库文件存放的位置。
/etc:配置文件目录。
/home:普通用户家目录存放的位置。
/root:管理员的家目录。
/media:便携式移动设备挂载点。
/mnt:临时文件系统挂载点。
/dev:设备文件及特殊文件存放位置。
b:block device,随机访问。
c:character device,线性访问。
/opt:第三方应用程序的安装位置。
/srv:系统上运行的服务用到的数据。
/tmp:临时文件存储位置。
/usr:全局共享只读数据存放位置
bin sbinlib lib64 对根目录下相关目录功能的补充。
include:C程序的头文件
share:结构化独立的数据,例如:doc,man等。
local:第三方应用程序的安装目录
bin,sbin,lib,lib64,etc,share
/var:可变数据文件
cache:应用程序缓存数据目录
lib:应用程序状态信息数据
local:专用于为/usr/local下的应用程序存放可变数据
lock:锁文件
log:日志目录文件
opt:专用于为/opt下的应用程序存储可变数据
run:运行中的进程相关数据,通常用于存储进程pid文件
spool:应用程序数据池
tmp:保存系统两次重启之间产生的临时数据.
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统
/selinux:selinux相关的安全策略等信息存放的位置。
2、linux文件管理命令示例
1)显示/etc目录下,所有以".d"结尾的文件或目录
ls /etc/*.d
*如果只想显示/etc下的文件,而不显示子目录的内容,则使用 ls -d /etc/*.d
2)显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls /etc/{m,n,r,p}*.conf
3)创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限
mkdir -p /app/rootdir && cp -av /root/* /app/rootdir
4)使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
mkdir -p /tmp/a{1/{a,b},2}
mkdir /tmp/{x,q}_{y,z}
【Linux文件、用户及权限管理】二、用户及权限管理
1、用户及组管理命令
1)useradd 添加用户,相关默认值在/etc/default/useradd文件中设置。
-u 指定uid
-g 指定用户所属基本组,可以指定组名,或者gid
-c 添加用户注释信息
-d 以指定的路径为家目录
-s 指定用户的默认shell程序,可用列表在/etc/shells文件中
-G 指定附加组,组必须事先存在
-r 创建系统用户
-m 给系统用户创建家目录
-M 不给非系统用户创建家目录
2)usermod 用户属性修改,大多数参数个useradd类似。
-md 创建新的家目录,并移动原家目录数据至新的家目录
-l 新的用户名
-L 锁定指定用户,在/etc/shadow密码栏中增加!
-U 解锁指定用户,将/etc/shadow密码栏中的!去掉
-e YYYY-MM-DD 指定用户账号过期日期
-f 设定非活动期限
3) userdel 删除用户
-r 删除用户家目录
4)id 查看用户id信息
-u:显示uid
-g 显示gid
-G 显示用户所属组的id
-n 显示名称,需配合ugG使用
5)su 切换用户
su UserName 非登录式切换,即不会读取目标用户的配置文件,不切换工作目录
su - UserName 登录式切换
6)passwd 修改指定用户密码
-d 删除指定用户密码
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登录修改密码
-f 强制操作
-n 指定最短使用期限
-x 指定最大使用期限
-w 提前多少天开始警告
-i 非活动期限
--stdin:从标准输入接收用户密码
echo "PASSWORD" | passwd --stdin USERNAME
7) groupadd 创建组
-g 指定gid
-r 创建系统组
8) groupmod 修改组属性
-g 新的gid
-n 新的组名
9)groupdel 删除组
10)gpasswd 更改组密码
-a user group 将user添加至指定组
-d user group 将user从指定组移除
-A user1,user2 group 设置用管理权限的用户列表
11)newgrp 临时切换主组
12)groupmems 更改查看组成员
-g groupname 指定要操作的组
-a user 指定用户加入组
-d user 从组中删除用户
-p 从组中清除所有成员
-l 显示组成员列表
2、权限管理
chown user:group file 设置文件的所有者:所属组
-R 递归
chgrp 设置文件属组信息
-R 递归
chmod 修改文件权限
3、用户管理命令示例
创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 "Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo

    推荐阅读