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 sbin  lib 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}

二、用户及权限管理

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

你可能感兴趣的:(Linux文件、用户及权限管理)