Linux 用户权限
最后更新于:2022-04-01 22:02:57
[TOC]
添加用户:`useradd -m 用户名 然后设置密码 passwd 用户名`
删除用户:`userdel -r 用户名`
1. 在root权限下,`useradd`只是创建了一个用户名,如 `useradd +用户名 `,它并没有在`/home`目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了避免这样的情况出现,可以用 `useradd -m +用户名`的方式创建,它会在`/home`目录下创建同名文件夹,然后利用` passwd + 用户名`为指定的用户名设置密码。
2. 可以直接利用`adduser`创建新用户`adduser +用户名`这样在`/home`目录下会自动创建同名文件夹
3. 删除用户,只需使用一个简单的命令`userdel 用户名`即可。不过最好将它留在系统上的文件也删除掉,你可以使用`userdel -r 用户名`来实现这一目的。
Linux系统如何添加用户这个问题到网上问一下或者搜一下,很多人可能会说`useradd`,实际这是不对的。`useradd`只会添加一个用户,没有创建它的主目录,除了添加一个新用户之外什么都没有。这个用户甚至不能登录,因为没有密码。`adduser`,这个命令实际是一个perl脚本,是`useradd`等类似底层命令的更友好的前端,它会用交互性的方式建立新用户,使用它可以指定新用户的家目录,登录密码,是否加密主目录等等,它会:
1.建立一个新目录作为家目录
2.建立同名新组
3.把用户的主要组设为该组(除非命令选项覆盖以上默认动作,比如`–disall-homdirecry`之类)
4.从`/etc/SKEL`目录下拷贝文件到家目录,完成初始化
5.建立新用户的密码
6.如果其存在的话,还会执行一个脚本。
> [创建用户useradd和删除用户userdel](http://blog.csdn.net/beitiandijun/article/details/41678251)
## Centos 增加管理员账户或超级用户的几种方法
Centos 增加管理员账户或超级用户的几种方法:
测试环境:CentOS 6.0
1、添加普通用户
```
[root@server ~]# useradd -m chenjiafa //添加一个名为chenjiafa的用户
[root@server ~]# passwd chenjiafa //修改密码
Changing password for user chenjiafa.
New UNIX password: //在这里输入新密码
Retype new UNIX password: //再次输入新密码
passwd: all authentication tokens updated successfully
```
2、赋予root权限
**方法一:** 修改/etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
```
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL` (注释(#)去掉)
```
然后修改用户,使其属于root组(wheel),命令如下:
`#usermod -g root chenjiafa`
修改完毕,现在可以用shenlanit帐号登录,然后用命令su – ,即可获得root权限进行操作。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/cf625022261ea1a733e8490b11277b3e_439x98.png)
**方法二:** 修改`/etc/sudoers` 文件,找到下面一行,在root下面添加一行,如下所示:
~~~
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
chenjiafa ALL=(ALL) ALL
~~~
修改完毕,现在可以用chenjiafa帐号登录,然后用命令`su –`,即可获得root权限进行操作。
**方法三:** 修改`/etc/passwd` 文件,找到如下行,把用户ID修改为0 ,如下所示:
`chenjiafa:x:500:500::/home/chenjiafa:/bin/bash`
修改后如下
`chenjiafa:x:0:500::/home/chenjiafa:/bin/bash`
保存,用chenjiafa账户登录后,直接获取的就是root帐号的权限。
!!!其实你再建一个ID是0,也就是和root权限一样的用户,你修改的时候也相应的修改了root。因为电脑不会区别admin和root,只知道0。
## 在LINUX下安装的程序,root运行提示权限不够
以root用户运行,linux提示权限不够。root用户难道不是最高的吗?如何解决这个问题呢?
其实这里面是有原因的,首先我们要这样做:
用#`ls -l filename`命令看看,如果显示类似如:
`-rw-rw-rw- 1 root root .... `
则表示任何用户都没有可执行权限(即使是root用户).
解决方法: #`chmod a+x filename`
呵呵,然后就可以了。
PS:用字符串来设定文件访问权限。其中读用 r 表示,写用 w 表示,执行用 x 表示;所有者用 u 表示,组用户用 g 表示,其他用户用 o 表示,所有用户用 a 表示。例子:
`chmod a+r,u+w,u+x,g+w a.txt`
## 777,644,755等用户权限说明
![document/2015-08-23/55d9b2e625d50](http://box.kancloud.cn/document_2015-08-23_55d9b2e625d50.png)
读取写入执行权限
444 r–r–r–600 rw——-644 rw-r–r–666 rw-rw-rw-700 rwx——744 rwxr–r–755 rwxr-xr-x777 rwxrwxrwx
三位数字代表9位的权限,分成3部分,第一部分3位表示所有者的权限,第二部分3位表示同组用户权限,第三部分3位表示其他用户权限,r代表读取权限等于4,w代表写入权限等于2,x代表执行权限等于1。
比如777,第一位7等于4+2+1,所以就是rwx,所有者有读取、写入、执行的权限,第二位7也是4+2+1,rwx,同组用户具有读取、写入、执行权限,第三位7,代表其他用户有读取、写入、执行的权限。
比如744,第一位7等于4+2+1,rwx,所有者具有读取、写入、执行权限,第二位4等于4+0+0,r–,同组用户只有读取权限、第三位4,也是r–,其他用户只有读取权限。
## Linux RWX权限
权限 `rwx r-x r-x` 解读
rwx :文件所有者(owner)可读,可写,可执行;
r-x:同组用户(group)可读,不可写,可执行;
r-x:其他用户(others)可读,不可写,可执行。
权限 `rwx r-x r-x` 是Linux系统常见的代码,权限 `rwx r-x r-x` 又可写为755。
第一个是文件所有者(owner)的权限,第二个是同组用户(group)的权限,第三个是其他用户(others)的权限。 权限分为三个,r是读,为4;w是写,为2;x是执行,为1。
更改权限用 `chmod` 命令,格式是 `chmod 用户名 文件或目录`
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/27/1c/271cac585dc8f445f0b863a0be58615d_600x652.png)
每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。 利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为 准。第一个字段由10个字符组成,如下: -rwxr-xr-x 第一位表示文件类型,-表示文件,d表示目录 2-4位表示文件所有者的权限,u权限 5-7位表示文件所有者所属组成员的权限,g权限 8-10位表示所有者所属组之外
### Linux RWX权限的解读:
Linux的权限不是很细致,只有RWX三种
* r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
* w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
* x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
* 目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
* 只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
* 一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外。
* 目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件。
> 更多参考:[Linux超级用户权限控制](http://blog.csdn.net/wwj_748/article/details/8708622)
>
';