linux初识到入门_用户管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux初识到入门_用户管理相关的知识,希望对你有一定的参考价值。



权限管理:


ls -l 

rwxrwxrwx:

左三位:定义user(owner)的权限

中三位:定义group的权限;

右三位:定义other的权限


进程安全上下文:

进程对文件的访问权限应用模型:

进程的属主与文件的属主是否相同;如果相同,则应用属主权限;

否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;

否则,就只能应用other的权限;


权限:

r:readable, 读

w:writable, 写

x:excutable,执行


文件:

r:可获取文件的数据;

w: 可修改文件的数据;

x:可将此文件运行为进程;


目录:

r:可使用ls命令获取其下的所有文件列表;但无法使用ls -l 查看详细信息

w: 可修改此目录下的文件列表;即创建或删除文件;

x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;


mode:rwxrwxrwx

ownership:user, group


权限组合机制:

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7


练习:rw-rw-r--, rwxrwxr-x, rwxr-x---, rw------, rwxr-xr-x

 664, 640, 600, 775, 750, 755


权限管理命令:

chmod命令:修改文件权限

      chmod [OPTION]... MODE[,MODE]... FILE...    #赋权法

      chmod [OPTION]... OCTAL-MODE FILE...   #8进制权限

      chmod [OPTION]... --reference=RFILE FILE... #引用修改


      三类用户:

      u:属主

      g:属组

      o:其它

      a: 所有


      (1) chmod [OPTION]... MODE[,MODE]... FILE...


      MODE表示法:

      赋权表示法:直接操作一类用户的所有权限位rwx;

      u=

      g=

      o=

      a=

      #例:[[email protected] ~]# chmod u=rwx,g=rwx,o=rw fstab   #各部分之间用 逗号 隔开 没有权限可以为空

[[email protected] ~]# ll fstab 

-rwxrwxrw-. 1 root root 541 12月 29 22:30 fstab


      授权表示法:直接操作一类用户的一个权限位r,w,x;

      u+, u-

      g+, g-

      o+, o-

      a+, a-

      #例:[[email protected] ~]# chmod u-w fstab     # 两种同样操作时可以合并 ~]#chmod ug+w fstab

[[email protected] ~]# ll fstab 

-r--rwx---. 1 root root 541 12月 29 22:30 fstab



      (2) chmod [OPTION]... OCTAL-MODE FILE...   

      ~]#chmod 660 fstab  


      (3) chmod [OPTION]... --reference=RFILE FILE...

      #例:[[email protected] ~]# chmod --reference=/var/log/messages fstab 

[[email protected] ~]# ll fstab 

-rw-------. 1 root root 541 12月 29 22:30 fstab



      选项:

      -R, --recursive:递归修改


      注意:用户仅能修改属主为自己的那些文件的权限;


从属关系管理命令:chown, chgrp


chown命令:修改属主属组

chown [OPTION]... [OWNER][:[GROUP]] FILE...


      例:[[email protected] tmp]# ll -d skel/                   #查看skel 目录的详细信息

drwxr-xr-x. 3 root root 74 12月 29 23:02 skel/  

[[email protected] tmp]# chown -R gentoo:cc skel/  #修改属主和属组信息    “ :” 可用“ . ” 代替

[[email protected] tmp]# ll -d skel/  # ~~~

drwxr-xr-x. 3 gentoo cc 74 12月 29 23:02 skel/




另:[[email protected] tmp]# chown :root skel/             #命令可以只跟 :GROUPNAME

[[email protected] tmp]# ll -d skel/

drwxrwxr-x. 3 root root 60 12月useradd 29 23:45 skel/


       

        chown [OPTION]... --reference=RFILE FILE...


        例:[[email protected] tmp]# chown --reference=/tmp/haha/ /tmp/skel/



        选项:

        -R:递归修改


        chgrp命令:


        chgrp [OPTION]... GROUP FILE...




        chgrp [OPTION]... --reference=RFILE FILE...



        注意:仅管理员可修改文件的属主和属组;


        思考:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?

        模拟之;


        思路:一个目录当前用户组没有写权限--修改用户组 并将另个用户加入其中并赋予该用户组写权限。

        登录另一个用户则该用户对该目录有写权限,对其下文件却没有写权限


        [[email protected] tmp]# ll -d ./skel/                        #查看改目录权限

drwxr-xr-x. 3 root root 74 12月 29 23:02 ./skel/     

[[email protected] tmp]# usermod -a -G  cc gentoo             #将一个用户追加一个附加组

[[email protected] tmp]# chown -R root:cc skel/               #将目录所属组递归 修改

[[email protected] tmp]# chmod g+w skel/                      #对用户组附加W权限


[[email protected] tmp]# su gentoo                            #切换用户

[[email protected] tmp]$ echo "hello" >> /tmp/skel/.bashrc  #向文件写入数据 (修改内部文件)

bash: /tmp/skel/.bashrc: 权限不够        


[[email protected] tmp]$ rm /tmp/skel/.bashrc               #删除该文件

rm:是否删除有写保护的普通文件 "/tmp/skel/.bashrc"?y


所以不能修改该文件内容,可以删除该文件。









        umask:文件的权限反向掩码,遮罩码;

        文件:

        666-umask

        目录:

        777-umask


        注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;

        umask: 023

        666-023=644

        777-023=754


        umask命令:

        umask:查看当前umask

        umask MASK: 设置umask


        注意:此类设定仅对当前shell进程有效;


        练习:完成以下任务

        1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;


        例:

        [[email protected] ~]# groupadd mariadb

[[email protected] ~]# useradd -g mariadb -M -s /sbin/nologin mariadb 


        2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;


        例:

[[email protected] ~]# group -g 5000 megeedu                       #新建GID 为5000的组mageedu

        [[email protected] ~]# mkdir /users                                #新建目录文件

[[email protected] ~]# useradd -d /users/gentoo gentoo  #新建用户并指定家目录

[[email protected] ~]# echo "gentoo" | passwd --stdin gentoo  # 设置密码



        3、新建用户fedora,其家目录为/users/fedora,密码同用户名;


        例:[[email protected] ~]# useradd -d /users/fedora fedora 

[[email protected] ~]# echo "fedora" | passwd --stdin fedora



        4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;


        例:[[email protected] ~]# useradd -d /users/www www   #同上

[[email protected] ~]# userdel www                 #不加选项仅删除用户

[[email protected] ~]# ls /users/

fedora  gentoo  www




        5、为用户gentoo和fedora新增附加组mageedu; 

        例:

        [[email protected] ~]# usermod  -a -G megeedu  gentoo

[[email protected] ~]# usermod  -a -G megeedu  fedora


....

megeedu:x:5000:gentoo,fedora

....




        6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限;.

        例:

        [[email protected] ~]# cp -r /var/log/ /tmp/                           #递归拷贝文件

[[email protected] ~]# ll -a /tmp/log/  #查看详细信息

总用量 1688

drwxr-xr-x. 18 root root    4096 12月 30 00:59 .

drwxrwxrwt. 21 root root    4096 12月 30 01:00 ..

drwxr-xr-x.  2 root root       4096 12月 30 00:59 anaconda


...

[[email protected] ~]# chown -R :megeedu /tmp/log/  #递归修改属组

[[email protected] ~]# ll -a /tmp/log/

总用量 1688

drwxr-xr-x. 18 root megeedu    4096 12月 30 00:59 .

drwxrwxrwt. 21 root root       4096 12月 30 01:00 ..

drwxr-xr-x.  2 root megeedu    4096 12月 30 00:59 anaconda

...

[[email protected] ~]# chmod g+w /tmp/log                              #修改文件目录本身所属组权限

[[email protected] ~]# ll -a /tmp/log/                            

总用量 1688

drwxrwxr-x. 18 root megeedu    4096 12月 30 00:59 .

drwxrwxrwt. 21 root root       4096 12月 30 01:03 ..

drwxr-xr-x.  2 root megeedu    4096 12月 30 00:59 anaconda









    install命令:

    install - copy files and set attributes


    单源复制:

        install [OPTION]... [-T] SOURCE DEST

        多源复制:

        install [OPTION]... SOURCE... DIRECTORY

        install [OPTION]... -t DIRECTORY SOURCE...

        创建目录:

        install [OPTION]... -d DIRECTORY...

        例:

        [[email protected] ~]# install -d hello                                #直接创建目录

        anaconda-ks.cfg  Desktop  Documents  Downloads  hello



        常用选项:

        -m, --mode=MODE:设定目标文件权限,默认为755;

        例:

      [[email protected] ~]# ll -a /tmp/inittab               

-rwxr-xr-x. 1 root root 511 12月 30 01:21 /tmp/inittab  # 权限755

[[email protected] ~]# ll -a /etc/inittab 

           -rw-r--r--. 1 root root 511 11月 20 2015 /etc/inittab   #实际权限 644



        -o, --owner=OWNER:设定目标文件属主;

        -g, --group=GROUP:设定目标文件属组;


        例:

        [[email protected] ~]# install -o gentoo -g megeedu -m 666 /etc/inittab /tmp/inittab  #直接修改属主,属组,权限

        [[email protected] ~]# ll -a /tmp/inittab 

                    -rw-rw-rw-. 1 gentoo megeedu 511 12月 30 01:31 /tmp/inittab




    mktemp命令:

    mktemp - create a temporary file or directory


    mktemp [OPTION]... [TEMPLATE]

例:

    [[email protected] ~]# a=$(mktemp /tmp/mytmp.XXXXX)    #利用引用将生成的临时文件目录赋值给a   模板。XXX最少三位 切为大写!!!!

[[email protected] ~]# echo $a                         #显示a的值

/tmp/mytmp.16vTk



    常用选项:

    -d:创建临时目录


    注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;


以上是关于linux初识到入门_用户管理的主要内容,如果未能解决你的问题,请参考以下文章

大数据学习之_01_Linux学习_01_linux的入门+VM和linux的安装+linux的目录结构+远程登录到linux服务器+vi和vim编辑器+开机重启和用户登录注销+用户管理+用户组管理(

Linux系统配置及服务管理_第01章系统部署 (第二小节初识shell)

linux入门_韩顺平_复习版_用户管理

Linux从入门到精通——用户管理

Linux入门篇-用户管理

Linux入门_1