美文网首页
Linux用户和组

Linux用户和组

作者: shijiatongxue | 来源:发表于2018-10-16 20:00 被阅读0次

创建和删除用户

创建用户

useradd <username>

useradd参数:

  • -d <home_dir> 设置用户的主目录
useradd <username> -d /home/<user's home>

设置用户密码

passwd <username>

比如:

$ passwd hadoop
Changing password for hadoop.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

添加用户的另一种方法(对于新手)

apt-get adduser #安装辅助函数

这种方法会自动为用户创建主目录以及默认的组,SHELL等。

adduser <username>

删除用户

userdel <username>

注意的是,上面这种方法只用删除用户账户,不删除相应的文件和主目录。

userdel -r <username> #删除用户以其相关的文件和主目录目录

理解Sudo

root是超级用户,可以在系统中做任何操作。如果把root权限开放,很有可能因为操作不当或者其他原因,给系统造成毁灭性的损失。sudo可以让用户不登陆root的情况下拥有管理权限。比如:

sudo apt-get install <package>

为了使用户拥有sudo权限需要将用户加入sudoers文件。由于这个文件比较重要,不应该对其进行直接编辑。如果编辑不当会导致无法登陆系统。因此应该用visudo命令间接对其进行编辑。在命令行,使用root登陆,然后输入visudo。
以下是拥有sudo权限的用户:

# User privilege specification
root    ALL=(ALL:ALL) ALL
hadoop ALL=(ALL:ALL) ALL

可以通过修改这个文件,把用户添加到sudo组。修改完成后退出root,登陆用户,通过以下指令查看是否有sudo权限。

sudo visudo

Linux通过组来管理用户。我们可以通过/etc/group文件查看组和组员。每个用户都有一个默认的组。当成员创建文件或者运行程序,组内其他成员也会和这个文件(或程序)产生联系。当用户在其他组内执行程序或者新建文件时,需要切换当前的组别。例如:

$ newgrp <marketing>

当成员切换当前组别后,创建的文件和当前组别有关,而与用户的默认组无关。用户可以通过以下命令更换默认组。

$ chgrp <newgroup>

创建和删除文件夹

创建文件夹

mkdir <directory name>

创建文件夹并且进行权限设置可以通过以下指令

mkdir -m a=rwx <directory name>
  • -m 是指短模式
  • a=rwx 意味着所有用户有此文件夹的读写执行权限

删除文件

rm <file>

删除文件夹(递归删除)

rm <directory name>

更改文件或文件夹的权限

输入ls -al可以查看文件或文件夹的权限,-a可以显示隐藏文件,-l可以显示较长的权限信息。输出如下:

drwxr-xr-x 17 shijia shijia 4096 10月 16 15:51 .
drwxr-xr-x  5 root   root   4096 10月 16 11:45 ..
-rw-------  1 shijia shijia 3256 10月 16 17:23 .bash_history
-rw-r--r--  1 shijia shijia  220 10月 15 16:31 .bash_logout
-rw-r--r--  1 shijia shijia 3771 10月 15 16:31 .bashrc

第一列显示文件或文件夹的权限,第二列显示文件夹下的文件个数,接下来显示文件的所有者、所属组、文件大小、日期和最后一次访问时间,以及最后一列文件名(或文件夹名)。
注:因为文件夹也属于文件的一种,它的大小显示恒为4096,这与文件夹内的内容没有关系。

chmod命令

chmod命令用于改变文件或文件夹的权限。

符号 权限
r
w
x 执行
X 执行(仅适用于文件夹)
u 文件所有者权限
g 组内成员的权限
o 其他组成员权限

注:-意味着权限被去掉,如r-代表只读。+代表赋予权限,如chmod u+r,g+x <filename>命令将读权限赋予用户,将执行权限赋予组。

chmod命令八进制格式

使用八进制格式时,需要给文件或文件夹的不同部分(所有者,同组用户,其他成员)分别计算。用0-7表示不同权限。如下表: chmod八进制.png

chmod的两种表示方式:

样本语法:chmod <octal or letters> <file/directory name>
字符格式:chmod go-rwx Work #拒绝本组和其他组用户访问Work文件

例子:
在当前文件夹下执行ls -al显示如下:

dr-------- 2 user user 4096 Dec 17 14:38 Work

执行chmod 444 Work操作后显示如下:

dr--r--r-- 2 user user 4096 Dec 17 14:38 Work

更换文件的拥有者

一般来说,文件属于文件的创建者和创建者的分组。如需更换所有者,需要用到chmodchown user:group /path/to/file格式。下面的操作要把list.html文件的所有者更换为marketing组的hadoop用户:

chown hadoop:marketing list.html

更改文件夹所有者的操作类似,-R为递归选择符:

chown -R hadoop:marketing /srv/smb/leadership/ 

平衡用户和组

最好的策略是给每个用户一个登陆的账户,这样可以保护每个用户的文件而不与其他人产生冲突。如果需要更高的权限可以使用sudo命令。如果想与同组用户分享文件,可以直接通过chmod 770chmod 740命令。

(掌握了一项新技能,Markdown,愉快!:)


参考文献:
Linux Users and Groups

相关文章

网友评论

      本文标题:Linux用户和组

      本文链接:https://www.haomeiwen.com/subject/lgvhzftx.html