本文目录:
- 1、修修改hdfs上的文件所属用户、所属组等读写执行控制权限
- 2、sudo和root权限有什么区别,为什么有的命令sudo无法执行,只能root执行?
- 3、ubuntu中,一个文件拥有root权限,怎么让普通权限也能对该文件进行修改,不是sudo转权限这种
- 4、普通用户怎么切换sudo权限 sudo指令又怎么切换普通用户权限
修修改hdfs上的文件所属用户、所属组等读写执行控制权限
HDFS支持权限控制,但支持较弱。HDFS的设计是基于POSIX模型的,支持按用户、用户组、其他用户的读写执行控制权限。在linux命令行下,可以使用下面的命令修改文件的权限、文件所有者,文件所属组:
sudo addgroup Hadoop添加一个hadoop组
sudo usermod -a -G hadoop larry将当前用户加入到hadoop组
sudo gedit etc/sudoers将hadoop组加入到sudoer
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL
修改hadoop目录的权限
sudo chown -R larry:hadoop /home/larry/hadoop所有者:组 文件
sudo chmod -R 755 /home/larry/hadoop
修改hdfs的权限
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /
修改hdfs文件的所有者
sudo bin/hadoop fs -chown -R larry /
sudo bin/hadoop dfsadmin -safemode leave 解除hadoop的安全模式
hadoop fs -copyFromLocal localsrc URI拷贝本地文件到hdfs
hadoop fs -cat /user/hadoop/file4将路径指定文件的内容输出到stdout
hadoop fs -chgrp [-R] GROUP URI改变文件的所属组
hadoop fs -chmod [-R] 755 URI改变用户访问权限
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]修改文件的所有者
hadoop fs -copyToLocal URI localdst拷贝hdfs文件到本地
hadoop fs -cp URI [URI …] dest拷贝hdfs文件到其它目录
hadoop fs -du URI [URI …]显示目录中所有文件的大小
hadoop fs -getmerge src localdst [addnl]合并文件到本地目录
如:
root@cdh3:~ hdfs dfs -ls /
Found 8 items
drwxr-xr-x – hbase hbase 0 2017-06-24 10:05 /hbase
drwxrwxr-x – solr solr 0 2016-12-01 22:43 /solr
drwxr-xr-x – root supergroup 0 2017-04-24 22:58 /sparklib
drwxr-xr-x – root supergroup 0 2017-07-19 17:44 /sparklib-2.1.0
drwxr-xr-x – hdfs supergroup 0 2016-12-05 09:08 /system
drwxrwxrwt – hdfs supergroup 0 2017-07-13 09:40 /tmp
drwxr-xrwx – hdfs supergroup 0 2017-06-23 10:54 /user
drwxr-xr-x – root supergroup 0 2017-04-13 11:12 /file
root@cdh3:~ hdfs dfs -chown Administrator /file
chown: changing ownership of ‘/file’: Non-super user cannot change owner
root@cdh3:~ hdfs dfs -chown -R Administrator /file
chown: changing ownership of ‘/file’: Non-super user cannot change owner
root@cdh3:~ su hdfs
hdfs@cdh3:/root$ hdfs dfs -chown -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -chgrp -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -ls /file
Found 9 items
-rw-r–r– 2 Administrator Administrator 3302 2017-04-13 11:11 /file/data-transfer.properties
-rw-r–r– 2 Administrator Administrator 313898 2017-04-13 11:00 /file/dom4j-1.6.1.jar
drwxr-xr-x – Administrator Administrator 0 2017-04-12 10:03 /file/hangxin
-rw-r–r– 2 Administrator Administrator 24212 2017-03-17 12:06 /file/hx.jar
-rw-r–r– 2 Administrator Administrator 802721 2017-03-17 11:50 /file/mysql-connector-java-5.1.20-bin.jar
drwxr-xr-x – Administrator Administrator 0 2017-03-22 09:46 /file/notregex
drwxr-xr-x – Administrator Administrator 0 2017-04-25 00:01 /file/regex
-rw-r–r– 2 Administrator Administrator 106006 2017-04-13 11:12 /file/sihconfig.xml
-rw-r–r– 2 Administrator Administrator 123 2017-03-16 14:31 /file/spark-config.properties
sudo和root权限有什么区别,为什么有的命令sudo无法执行,只能root执行?
引用,因为链接可能会被屏蔽,所以直接粘贴过来了
关键在于:echo 和 重定向是两个命令
众所周知,在Linux使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式。本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息。
比如要向 test.asc 文件中随便写入点内容,可以:
$ echo “信息” test.asc
或者
$ echo “信息” test.asc
下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作:
$ sudo chown root.root test.asc
然后,我们使用 sudo 并配合 echo 命令再次向修改权限之后的 test.asc 文件中写入信息:
$ sudo echo “又一行信息” test.asc
-bash: test.asc: Permission denied
这时,可以看到 bash 拒绝这么做,说是权限不够。这是因为重定向符号 “” 和 “” 也是 bash 的命令。我们使用 sudo 只是让 echo 命令具有了 root 权限,但是没有让 “” 和 “” 命令也具有 root 权限,所以 bash 会认为这两个命令都没有像 test.asc 文件写入信息的权限。
解决这一问题的途径有两种。第一种是利用 “sh -c” 命令,它可以让 bash 将一个字串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。具体用法如下:
$ sudo sh -c ‘echo “又一行信息” test.asc’
另一种方法是利用管道和 tee 命令,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:
$ echo “第三条信息” | sudo tee -a test.asc
注意,tee 命令的 “-a” 选项的作用等同于 “” 命令,如果去除该选项,那么 tee 命令的作用就等同于 “” 命令。
ubuntu中,一个文件拥有root权限,怎么让普通权限也能对该文件进行修改,不是sudo转权限这种
在root
下,改该文件的权限为所有人可读可写可执行,chmod
-R
777
文件,这样其它权限也可以对其操作
不然的话,只能通过sudo拥有root权限才能更改
普通用户怎么切换sudo权限 sudo指令又怎么切换普通用户权限
普通用户:test
[test@gateway ~]$ sudo su – 切换到root用户
[root@gateway ~]
《开源人》留言
本文来源:https://www.yuntue.com/post/121132.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏