用户组和权限详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户组和权限详解相关的知识,希望对你有一定的参考价值。

时间:2017.11.16

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。

1、使用目的与场景


2、官方说明

  

3、写在前面


因为上述配置影响着所有的用户,所以一般不建议直接改动配置文件

而是通过一些特定的命令去修改,然后用命令你去检查各个配置文件的依赖性是否正确。

vipw vigr vigr -s pwck grpck

对文件进行编辑时使用这些命令可以有语法及依赖性检查。还是相当于直接手动该文件,只是保证了你没有改变这个文件里面内容的格式,但是相关的文件并没有一次改完,所以还是会用命令靠谱些


4、修改文件及涉及的环境变量

    /etc/passwd

    /etc/shadow

    /etc/group

    /etc/gshadow

    /etc/default/useradd

    /etc/defult/useradd-

    /etc/skel/*

    /etc/login.defs

    $USER,


5、用法

1、用户

云盘管理,这个目录下有100个用户,对每个用户有每个用户的家目录

不同之间没有好像访问的权利,

1、可以共享,就是这个目录的权限放开,

2、给特定用户访问权限就是云盘的密码连接,你输入密码就可以访问,

3、当然你可以指定特殊账号可以进行访问。给其目录新加一个用户的访问权。

1.1、useradd

sarah:x:505:506::/home/sarah:/sbin/nologin
/etc/passwd保存用户信息的文件格式
-p:添加passwd
-e:用户有效期
-f:密码有效期
-u:添加uid
-g:为用户添加gid
-G:添加用户的附属组
-c:添加用户的解释comment
-d:添加的用户的家目录
-s:添加用户的shell类型
-D:用户的默认设置查看 /etc/default/useradd|useradd-
-l:不将用户加入到lastlog和faillog数据库
-k:重新为用户执行skel目录,不用默认的/etc/skel(包含系统创建用户的基本设置)
-K:  Overrides /etc/login.defs defaults (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others).
-m:创建家目录
-M:不创建家目录
-N:不创建和用户名称一样的用户组
-r:创建系统用户
-U:允许创建重复uid的用户,不检查uid的唯一性
-D -b
-D -e
-D -f
-D -g
-D -s
以上修改/etc/default/useradd.此文件内容

1.2、usermod

-u: 修改用户的uid
-g:强制设置一个组为用户的新主组
-G:  修改用户的附属组
-d:新的家目录对用户,新的家目录不会自动创建,而且源家目录也不会删除,相当于cp不加 -a,最好配合-m使用,保留原家目录信息并移动。
-c:修改用户的comment
-s:修改用户的shell
-a:
-m: 移动用户的家目录到新的目录和-d一起使用
-l: 给用户改名字
-L:锁定用户。在/etc/shadow的用户密码前加!
-U:解锁用户,去掉在/etc/shadow的用户密码前的!

1.3、userdel

默认就删除用于,家目录什么没有删除
-f:强制删除
-r:删除家目录和邮件
-R
-Z

1.4、passwd

 passwd  [-k]  [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin]
       [username]
DESCRIPTION
       The passwd utility is used to update user’s authentication token(s).
       This task is achieved through calls to the Linux-PAM and Libuser API.  Essentially, it initializes itself as  a
       "passwd"  service  with  Linux-PAM  and  utilizes configured password modules to authenticate and then update a
       user’s password.
       A simple entry in the global Linux-PAM configuration file for this service would be:
        #
        # passwd service entry that does strength checking of
        # a proposed password before updating it.
        #
        passwd password requisite pam_cracklib.so retry=3
        passwd password required pam_unix.so use_authtok
        #
       Note, other module types are not required for this application to function correctly.
OPTIONS
       -k     The option -k, is used to indicate that the update should only  be  for  expired  authentication  tokens
              (passwords); the user wishes to keep their non-expired tokens as before.
       -l     This  option is used to lock the specified account and it is available to root only. The locking is per-
              formed by rendering the encrypted password into an invalid string (by  prefixing  the  encrypted  string
              with an !).
       --stdin
              This  option is used to indicate that passwd should read the new password from standard input, which can
              be a pipe.
       -u     This is the reverse of the -l option - it will unlock the account password by  removing  the  !  prefix.
              This  option  is  available to root only. By default passwd will refuse to create a passwordless account
              (it will not unlock an account that has only "!" as a password). The force option -f will override  this
              protection.
       -d     This  is  a  quick  way to delete a password for an account. It will set the named account passwordless.
              Available to root only.
       -e     This is a quick way to expire a password for an account. The user will be forced to change the  password
              during the next login attempt.  Available to root only.
       -n     This will set the minimum password lifetime, in days, if the user’s account supports password lifetimes.
              Available to root only.
       -x     This will set the maximum password lifetime, in days, if the user’s account supports password lifetimes.
              Available to root only.
       -w     This  will  set  the  number of days in advance the user will begin receiving warnings that her password
              will expire, if the user’s account supports password lifetimes.  Available to root only.
       -i     This will set the number of days which will pass before an expired password for  this  account  will  be
              taken  to mean that the account is inactive and should be disabled, if the user’s account supports pass-
              word lifetimes.  Available to root only.
       -S     This will output a short information about the status of the password for a given account. Available  to
              root user only.

1.5、chage

改变用户密码的时间信息
可以直接chage + 用户,会一步一步提示修改那个
也可以加上option 单个选项进行修改
-d 最后一次修改密码的时间如果设置为0就是强制下次登录必须修改密码,可以用具unix元年的s数,也可以用YYYY-MM-DD的格式
-E用户到期时间可以用YYYY-MM-DD的格式.也可以是到1970年1月1日的格式
-I 密码过期的时间
-m最少要多少天改密码,0表示随时
-M最多到多少天必须密码
-W在密码到期提前多少天给用户提醒。
chage -l  login 显示用户的密码时间信息
修改的文件是/etc/shadow

1.8、chfn

就是来修改/etc/passwd 中的comment字段
chfn直接执行会一步一步的让你填写内容
finger可以来查看用户的comment信息

1.9、chsh

就是来修改/etc/passwd 中的shell字段
chsh直接执行也会提示你修改当前用户的shell
-s 指定shell
-l 显示/etc/shells有哪些shell

2、组

2.1、groupadd

-f, --force
This option causes the command to simply exit with success status if the specified group already exists.
When used with -g, and the specified GID already exists, another (unique) GID is chosen (i.e.  -g is turned
off).
-g, --gid GID     指定一个组id。
-K, --key KEY=VALUE
Overrides /etc/login.defs defaults (GID_MIN, GID_MAX and others). Multiple -K options can
-o, --non-unique 不检查guid唯一性
-p, --password PASSWORD  给组设置密码
-r, --system  创建一个系统组
-R, --root CHROOT_DIR
Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

2.2、groupmod

-n
修改组的名称。
-g
修改组id

2.3、gpasswd

-a  --add  user 添加用户到组中
-d  --delete  user 从组里删除用户
-r   --remove-passwd 删除密码
-R--restrict 限制用户访问这个组,在/etc/gshadow在上!,只允许组成员通过newgrp和密码加入到这个组中
-A
-M --members user,.... 设置组成员列表

2.4、groupdel

-R, --root CHROOT_DIR
不能删除有用户的主组

2.5、groupmems

-a添加
-d删除
-l查看
-g更改
-ppurge清空所有用户
-R  --root CHROOT_DIR


2.6、newgrp

可以删除辅助组,主组不能删

3、信息查看

3.1、finger

3.2、id 

id 默认查看当前登录信息
id user 查看配置文档
id [OPTION]... [USERNAME]
-a     ignore, for compatibility with other versions
-Z, --context 仅打印当前用户的安全上下文,后面不加用户名
-g, --group
print only the effective group ID
-G, --groups
print all group IDs
-n, --name
print a name instead of a number, for -ugG
-r, --real
print the real ID instead of the effective ID, with -ugG
-u, --user
print only the effective user ID

3.3、groups user

3.4、getent passwd|shadow|group|gshadow  user

文件权限:

文件属性;

ll

stat

chown 改变文件所有者

chgrp 改变文件的属组信息

-R 递归

文件权限的3个对象

owner u

group g

other o

文件操作的权限

readable

writable

excutable

rwx 可读可写可执行

421

chmod 777

修改文件权限,分别针对ugoa

a是针对有。

可以+-,可用777也可用rwx

-R递归

新建文件或目录的默认权限

/etc/bashrc

~/.bashrc

umask

特殊权限chattr

lsattr

suid

sgid

sticky

acl

access control list

更精细化的对文件的权限进行管理,

other部分更精细化

getfacl

setfacl

centos7之前版本需要手动添加文件系统对acl的支持

tune2fs -o acl /dev/sb1

mount -o acl /dev/sdb1 /mnt/test

chmod

chown

chgrp

x是执行权限

X是只对目录有进入权限,但是对文件没有execute权限。

如果目录下file1有x权限那么使用chmod -R a+X  dir1

就会将dir1下的file1的所有都设置x,判断因为本身有x,所以会认为可以给其他使用者x权限

这里要注意使用风险。

对目录,x是基本权限。

对执行脚本, 只设置x,只能执行。无法查看和改写,写的太烂不好意思给人看,用就行

对root的权限有特殊性。


本文出自 “我是一只小小菜鸟” 博客,请务必保留此出处http://lajifeiwomoshu.blog.51cto.com/5110076/1982388

以上是关于用户组和权限详解的主要内容,如果未能解决你的问题,请参考以下文章

Django REST框架--认证和权限

详解nginxphp-fpm和mysql用户权限

Oracle-常用数据库对象笔记(片段)

权限框架之Shiro详解

gitlab 权限说明

用户组和权限详解