zoukankan      html  css  js  c++  java
  • 7_linux用户及权限(2)和管理

    useradd:
    useradd [options] USERNAME
      -u UID
      -g GID(基本组)
      -G GID,...(附加组) //省略号表示可以有多个,彼此之间用逗号隔开
      -c "COMMENT"
      -d /path/to/directory //指定家目录。代称,不是直接写的路径
      -s SHELL //指定shell路径的
        [root@localhost ~]# useradd -s /sbin/nologin hello
        [root@localhost ~]# su - hello
        This account is currently not available.
        [root@localhost ~]#
      -m 强制为用户创建家目录,
        -m -k 把skel下的目录文件复制过去
          [root@localhost ~]# ls -a /etc/skel
          . .. .bash_logout .bash_profile .bashrc .mozilla //.bash_logout .bash_profile .bashrc。bsh用于用户个人的环境配置文件
      -M 不给用户创建家目录
      [root@localhost ~]# cat /etc/login.defs //配置文件,默认设定值都在里面
      -r 添加系统用户

    userdel:
    userdel [option] USERNAME
      删除的时候没有指定任何选项,删除用户的家目录是不会删除的
      -r 删除用户的同时删除家目录

    id:用来查看用户的账号属性信息
      -u
      -g
      -G
      它们也都可以和-n一起使用,name

    finger:查看用户账号信息
    finger USERNAME

    修改用户账号属性:
    usermod
      -u UID
      -g GID
      -G GID //如果此前用户已经指定附加组,而后又指定附加组,那么此前的附加组就被覆盖了。
        -a -G:通常-aG连用,为用户在原有附加组的基础上额外指定附加组
      -c "COMMENT"
      -d 为用户指定新的家目录。 //如果此前创建的这个用户,这个用户已经登录过了,而且创建过很多文件,我们再次指定新的家目录,那么之前家目录的文件就无法访问了
        -d -m:即指定家目录的位置,又移动此前的家目录文件
      -s SHELL
      -l 修改用户名的
      -L 锁定用户账号,类似于禁用
      -U 解锁账号

    chsh:专门改用户的默认shell的

    chfn:修改注释信息的

    密码管理:
    passwd [USERNAME] //对于普通用户只能使用passwd改自己的密码,对于管理员可以指定用户名修改指定用户名的密码
      --stdin 从其他位置接收传递过来的密码
        [root@localhost ~]# echo "redhat"
        redhat
        [root@localhost ~]# echo "redhat" | passwd --stdin Tom //管道
        更改用户 Tom 的密码 。
        passwd:所有的身份验证令牌已经成功更新。
        [root@localhost ~]#
      -l 锁定用户账号 //这里是小写,和usermod不一样
      -U 解锁
      -s 密码最长使用期限
      -n 密码最短使用期限
      -w 警告时间
      -i 非活动时间
      -d 删除用户密码 //清空一个用户的密码,他就无法登陆了
        [root@localhost ~]# passwd -d Tom
        清除用户的密码 Tom。
        passwd: 操作成功
        [root@localhost ~]# tail /etc/shadow
        Tom::17851:0:99999:7:::
        [root@localhost ~]#

    pwck:检查用户的账号完整性


    组管理:
    创建组:groupadd
    groupadd
      -g:GID
      -r:添加为系统组

    groupmod
      -g:GID
      -n:GRPNAME

    groupdel

    gpasswd:为组设定密码

    newgrp GRPNAME <--> exit

    chage
      -d:最近一次的修改时间
      -E:过期时间
      -I:非活动时间
      -m:最短使用期限
      -M:最长使用时间
      -w:警告事件


    练习:
    1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux
    # groupadd -g 3003 distro
    # groupadd linux
    # useradd -u 2002 -g distro -G linux mandriva

    2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh
    # useradd -c "Fedora Community" -s /bin/tcsh/ fedora

    3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora
    # usermod -u 4004 -g linux -G distro,fedora mandriva

    4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天
    # passwd -n 2 -x 50 fedora

    5、将mandriva的默认shell改为/bin/bash
    # usermod -s /bin/bash mandriva

    6、添加系统用户hbase,且不允许其登录系统
    # usermod -r -s /sbin/nologin hbase


    权限管理:
    r:
    w:
    x:

    三类用户:
    u:属主
    g:属组
    o:其他用户

    chown:改变文件属主(root权限下)
    # chown USERNAME file,... //默认只修改目录
      -R:递归修改目录及其内部文件的属主
      --reference=/path/to/somefile file,...
        把我们想要设定其属主的文件(file,...),设定位跟之歌指定的文件一样(somefile)


    属组
    # chgrp GRPNAME file,...
      -R:
      --reference=/path/to/somefile file,...


    chown还可以同时修改属主,属组名
    chown USERNAME:GRPNAME file,... //这里也可以用点,效果是一样的。chown USERNAME.GRPNAME file,...
      -R

    chown :GRPNAME file,... //chown也可以只改属组不改属主

    chown --reference //这里不仅仅是改属主,是属主属组都改


    chmod:修改文件的权限
    修改三类用户的权限:
    chomd MODE file,...
      -R:
      --reference=/path/to/somefile file,...

    修改某类用户或某些类用户权限:
    u,g,o,a
    chmod 用户类别=MODE file,...

    修改某类用户的某位或某些位权限:
    u,g,o,a
    chmod 用户类别+|-MODE file,...


    练习:
    1、新建一个没有家目录的用户openstack
    # useradd -M openstack

    2、复制/etc/skel为/home/openstack
    # cp -r /etc/skel /home/openstack

    3、改变/home/openstack及其内部文件的属主属组均为openstack
    # chown -R openstack:openstack /home/openstack

    4、/home/openstack及其内部的文件,属组和其他用户没有任何访问权限
    # chmod -R go= /home/openstack

    umask:遮罩码
    666-umask
    777-umask

    # umask
    # umask 022

    umask:023
    文件:666-023=644
    目录:777-023=754
    文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1。所以是644不是643


    站在用户的角度来说,SHELL的类型:
    登录式shell:
      正常通过某终端登录的shell
      su - USERNAME
      su -l USERNAME

    非登录式shell:
      su USERNAME
      图形终端下打开命令窗口
      自动执行的shell脚本

    bash的配置文件:
    全局配置
      /etc/profile, /etc/profile.d/*.sh, /etc/bashrc // /etc/profile.d目录下所有以.sh结尾的文件
    个人配置
      ~/.bash_profile, ~/.bashrc

    profile类的文件:
      设定环境变量
      运行命令或脚本

    bashrc类的文件:
      设定本地变量
      定义命名别名

    登录式shell如何读取配置文件
    /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

    非登录式shell如何读取配置文件
    ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

  • 相关阅读:
    easyui datagrid 显示 footer
    ie浏览器 vuejs axios Promise 未定义
    react引入富文本编辑器TinyMCE
    react中ant-design组件实现textarea获取光标位置并插入表情图片
    前端日志埋点优化
    iframe父子页面通讯
    HTML5中的audio在react中的使用----语音播放进度条、倍速播放、下载等
    echarts简单入门
    在textarea里实现获取光标位置和选中内容
    lodash数组发现之旅--------The second day
  • 原文地址:https://www.cnblogs.com/xian-luo/p/9991588.html
Copyright © 2011-2022 走看看