Linux入门(用户操作及权限),Linux权限


Linux入门之 用户操作及权限

  在一个公司里,老板与员工有上下级之分,员工与员工间也有上下级或同级之分。每个级别在公司的职责不同,权限也不同。在Linux操作系统中也一样,不同的用户身份拥有着不同的功能与权限。


Linux用户的分类


超级管理员: UID为0 root用户拥有至高无上的命令,root用户不能改名

系统用户:UID小于1000,用于管理服务,一般不允许登陆

普通用户:UID大于或等于1000,权限较小,允许登陆,只能使用bin下命令


1.用户创建,删除,修改

useradd命令

 useradd - create a new user or update default new user information

-c,  --comment  描述
-d,  --home HOME_DIR 家目录
-e, --expiredate EXPIRE_DATE  过期时间
-f, --inactive INACTIVE 是否启用过期机制
-g, --gid GROUP   指定组ID号
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]  附加组
-m, --create-home     建立家目录           
-M,                    不建立家目录
           Do not create the user′s home directory, even if the system wide
           setting from /etc/login.defs (CREATE_HOME) is set to yes.

-N, --no-user-group 不指定用户同名组
-r, --system    指定该帐号是系统帐号
-s, --shell SHELL  指定登录shell
-u, --uid UID   指定用户ID号
-U, --user-group 指定用户创建用户同名组
-o, --创建用户是可以uid重复

usermod命令

usermod - modify a user account
-a, --append
-L, --lock
-U, --unlock
-m, --move-home with -d

userdel命令

userdel - delete a user account and related files
-f, --force
-r, --remove 删除主目录及邮箱

change命令

chage
-h, --help    display this help message and exit
-m, 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M, 密码保持有效的最大天数。
-W, 用户密码到期前,提前收到警告信息的天数。
-E, 帐号到期的日期。过了这天,此帐号将不可用。
-d, 上一次更改的日期    如果设置为0 用户下次登录必须改密码
-i, 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
-l, 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

who命令

  who命令将列出所有正在使用系统的用户、所用终端名和注册到系统的时间。而who am i 命令将列出使用该命令的当前用户的相关信息。例如:

[root@localhost ~]# who
root     :0           2019-10-10 07:59 (:0)
root     pts/0        2019-10-10 07:59 (:0)
root     pts/1        2019-10-10 07:59 (:0)

[root@localhost ~]# who am i
root     pts/1        2019-10-10 07:59 (:0)


2.密码设置及密码文件

passwd命令

passwd - set user password
-l, lock
-u, unlock
-d, delete a passwd  for an account
-S,  This will output a short information about  the  status  of  the password for a given account.
--stdin,
    echo linux |passwd --stdin vfast    1 > 0

密码文件

/etc/passwd
   User account information.
       [用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell] 
/etc/shadow
           Secure user account information.
                 用户名:这是用户登录系统时使用的用户名,它在系统中是惟一的
                 口令:此字段存放加密的口令
                 最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
                 最小时间间隔:两次修改口令之间的最小天数
                 最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
                 警告时间:从系统开始警告到口令正式失效的天数
                 不活动时间:口令过期多少天后,该账号被禁用
                 失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
                 标志:未使用

shadow文件

  目前,大多数UNIX/Linux系统中,利用/etc/shadow文件存放用户账户的加密密码信息和密码的有效期信息。

user01:!!:18173:0:99999:7:::

  Linux系统的shadow文件中,为每个用户提供一条记录,各个字段用“:”隔开,这9个字段按先后顺序分别是
注册名:密文密码:上次更改密码时间距1970年1月1日的天数:密码更改后不可以更改的天数:密码更改后必须再次更改的天数(即密码的有效期):密码失效前警告用户的天数:密码失效后距离账户被查封的天数:账户被查封时间距1970年1月的天数;保留字段


3.组的管理

groupadd

groupadd - create a new group
命令语法
groupadd [选项] 组名
命令选项
-g, --gid GID        指定GID
-r, --system        创建一个系统组
-o, --non-unique    此选项允许添加一个使用非唯一 GID 的组
注意:组名最长为 32 个字符

groupmod命令

groupmod - modify a group definition on the system
命令语法
groupmod [选项] 组名
命令选项
-g, --gid GID
-n, --new-name NEW_GROUP  给组改名
-o, --non-unique 

例子  
1、将组名为test3的名字改为baism
groupmod test3 -n baism

groupdel命令

groupdel - delete a group


4.组密码及组配置文件

gpasswd命令

gpasswd - administer /etc/group and /etc/gshadow
-a, --add USER                add USER to GROUP
-d, --delete USER             remove USER from GROUP
-r, --remove-password         remove the GROUP's password
-R, --restrict                restrict access to GROUP to its members 限制用户登录该组,除了组成员。
-M, --members USER,...        set the list of members of GROUP
-A, --administrators ADMIN,...
                                set the list of administrators for GROUP
案例:
设置组root密码    #gpasswd root
用户组身份切换为root $newgrp root
组管理员设置 #gpasswd test -A user3
限制陌生用户切换到组 #gpasswd -R test
指定组的成员列表   # gpasswd test -M user3,user2

配置文件

/etc/group
  Group account information.
      [组名]:[密码域]:[GID]:[组员列表] 
/etc/gshadow
  Secure group account information.


5.相关文件

/etc/passwd
        用户账户信息。
/etc/shadow
        安全用户账户信息。
/etc/group
        组账户信息。
/etc/gshadow
         安全组账户信息。
/etc/default/useradd
           账户创建的默认值。
/etc/skel/
           包含默认文件的目录。
/etc/login.defs
           Shadow 密码套件配置。


6.身份切换

su 命令--用户身份的切换

su [options...] [-] [user [args...]]
如:
su - root

su user01

  在大多的linux的版本中,都可以使用"su"或者"su -",但是"su"和"su -"有何差别:
  "su"只是切换了root身份,但Shell环境仍然是普通用户的Shell;而"su -"连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。"su"切换成root用户以后,"pwd"一下,发现工作目录仍然是普通用户的工作目录;而用"su -"命令切换以后,工作目录变成root的工作目录了。用"echo $PATH"命令看一下"su"和"su -"以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用"su -"命令。

当一个用户同时属于多个组,如何切换组身份 ?

newgrp 命令

  newgrp指令类似login指令,它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。



附加知识:文件与文件夹权限

Linux 基本权限

linux基本权限
使用ls -l filename 命令查看文件或文件夹详细权限
ls -l
-rw-r--rw-  1 root root    22 Jan  6 15:42 abc
- --- --- ---
第1个 -  文件类型
第2-4个 -  文件所有者的权限  root    rw-       r  读   w  写   x  执行
第5-7个 -  文件所属的组中的成员对其权限  root   r--
第8-10个 -  其他人   rw-
22 文件或文件夹的大小
Jan  6 15:42   创建日期
abc  文件名

chmod命令

chmod - 改变文件的访问权限
命令语法
chmod [options] mode file...
命令选项
-R 递归设置权限,针对目录有效
mode  谁给什么权限
u(所有者)  g(所属组)   o(其他人)  a(所有人)
+ - =
权限  r 读  w 写   x 执行
数字权限
r 读 4
w 写 2
x 执行 1
chmod 760 abc

chown命令

chown 修改文件或文件夹所有者命令
命令语法
chown [options] user [:group] file...
命令选项
-R, 递归设置,针对文件夹
chown 新所有者  文件名
chown   新的所有者.新的所属组  文件名
-R, 递归修改

chgrp命令

chgrp  改变所属的组
命令语法
chgrp [选项] 组文件...
命令选项
-R, 递归设置权限,针对目录有效
chgrp 新所有组  文件名
chown   .新的所属组  文件名


Linux特殊权限

linux特殊权限 7 777
suid 4    当一个二进制文件拥有SUID权限后,当其他用户执行该二进制文件的时候,该二进制文件就会以他所有者的权限去执行
sgid 2   
  要求文件夹下的新建的子文件夹或者子文件继承父文件夹的属组
sticky bit  1
如果给文件夹 赋予粘连位  则该文件夹下的文件或文件夹只能由所有者及ROOT删除


Linux隐藏权限

chattr命令

chattr [+-=][ASacdistu] 文件或文件名
 命令选项:
        + : 增加某个特殊参数,其他原本存在的参数不动。
        - : 删除某个特殊参数,其他原本存在的参数不动。
        = : 设置一定,且仅有后面接的参数
        A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。
        S : 这个功能有点类似sync。就是将数据同步写入磁盘中。可以有效地避免数据流失。
        a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性。
        c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。
        d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。
        i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入或新增数据”。对于系统安全性有相当大的帮助。
        j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置日志了,所以这个属性无效。
        s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。
        u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中,可以用来还原删除.
            注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。

lsattr命令

lsattr 文件或文件名
 查看文件或文件夹的隐藏权限


Linux file ACL 权限

setfacl命令

setfacl - set file access control lists
命令语法
setfacl [选项] file...
命令选项
-m, 修改acl
-x, 删除acl
-b, 删除所有acl
-k, 删除默认的acl
-R, 递归

getfacl命令

getfacl 查看文件权限
命令语法
getfacl  file...

相关内容

    暂无相关文章