1、Linux中关于用户、组的一些操作

  • 查看当前登录用户名
whoami
  • 查看当前登录用户的组内成员
groups
  • 查看用户 zhangsan 所在的组,以及组内成员
groups zhangsan
# 显示情况
zhangsan : group_name
  • 在Linux中添加一个组:
groupadd 组名
  • 在Linux中添加一个用户:
useradd 用户名

#或者
adduser 用户名

新建用户后,将会在/home目录下生成一个与用户名相同的用户主目录,同时会创建一个新组,该组与该用户名相同,该用户属于该组的成员。

  • 为指定用户创建密码(不创建也行)
passwd 用户名
  • 在Linux中添加用户到组:
usermod -g 组名 用户名
  • 在创建用户的同时,加入组(该组是存在的)
useradd -g 组名 用户名
  • 在Linux中删除一个用户:
userdel -r 用户名

删除用户也可以使用命令:userdel 用户名 ,此时虽然用户被删除了,但用户留在系统上( /home 目录下)的目录不会被删除,还得使用命令 rm -rf 目录名 删除用户目录。所以不如直接使用命令 userdel -r 用户名 实现这个操作一步到位实现删除用户。

温馨提示:如果只用 userdel 用户名 删除,那么再次创建相同名称的用户时,系统会报错:useradd:warning:the home directory already exists. Not copying any file from skel directory into it

  • 删除组
groupdel 组名

当然,在删除组的时候,只能使用命令:groupdel 组名 ,此时组被删除了。虽然在 /home 目录下,还会有刚才删掉的组名,但是不影响再次创建该组。

用户组里面有用户,必须先把用户移动或删除了,才能删除组。否则会报错: groupdel:cannot remove the primary group of user '组名'

  • 更改HDFS中 /test02/test06 目录的权限
hadoop fs -chmod -R 777 /test02/test06
  • 强制更改HDFS中 /test02/test06 目录的用户、组的权限
hadoop fs -chown -R 用户名:组名 /test02/test06
  • 查看所有用户的列表
cat /etc/passwd
  • 查看当前活跃的用户列表
w
  • 查看所有的用户组
cat /etc/group
  • 切换用户
su 要切换为的用户名
  • 退出该用户
exit

注:新建用户、组需要用root用户在Linux中创建。新建后就会自动同步到HDFS中,不用重启HDFS服务

2、文件权限与目录权限:

文件权限与目录权限是不同的

  • 目录权限
    r:read 可以查询该目录下的文件名(如:用ls命令查看目录内容)
    w:writte 可以在该目录下删除文件、创建文件、重命名文件
    x:execute 进入该目录(使该目录成为工作目录)
  • 文件权限
    r:read 显示该文件的内容,读取,查看(如:用cat命令)
    w:writte 可以编辑文件,修改文件的内容(如:用vim命令)。可以修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录(文件夹)具有写的权限,才能删该文件
    x:execute 该文件是可执行文件 (如:./filename 来执行文件名)

对文件而言,当读取这个文件时需要有 r 权限,当写入或者追加到文件时需要有 w 权限。对目录而言,当列出目录内容时需要具有 r 权限,当新建或删除子文件或子目录时需要有 w 权限,当访问目录的子节点时需要有 x 权限

3、权限第一位代表的含义:

  • d 目录
  • l 链接文件
  • b 块设备
  • c 字符设备