最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】window中对ubuntu通过samba共享出来的文件没有写权限/无法修改

工作和技术 crifan 7361浏览 0评论

【已解决】window中对ubuntu通过samba共享出来的文件没有写权限/无法修改

【问题】

已经实现了Ubuntu 10.10下,通过Samba共享出来文件夹,在Windows下面,已经实现了可以正常访问,读取文件或文件夹了。

但是却发现没有写入的权限。从ubuntu共享出去的文件,只允许一个叫做tq2440的用户访问。

【解决过程】

1.最容易想到的原因就是smb的配置是否正确了,但是我这里确保我的配置是正确的,是通过samba的图形界面配置的,的确勾选了可写入的那个选项的,而且共享出来的共3文件夹,其中一个文件夹也的确是可以写入的,但是另外两个文件夹不可以写入而已。所以肯定不是这个原因。

2.网上说有关于SELinux的问题,而我此处的ubuntu都没有装它,所以执行getsebool,都会提示如下内容:

 [email protected]:~/develop$ getsebool
程序“getsebool”尚未安装。  您可以使用以下命令安装:
sudo apt-get install selinux-utils

所以,此处肯定不是这个原因。

3.有人在这里:

http://www.linuxdiyf.com/bbs/thread-166768-1-1.html

提到了文件所属于哪个用户的问题:

“linux文件系统的权限设置是个前提, 无论samba的访问权限怎么设置, 用户在linux中无权访问的文件在samba中也肯定是不能访问的.”

而当前这些文件都是我的root用户crifan所建立的,但是共享出去给tq2440的用户访问,所以觉得貌似可能是这个原因。

所以想到去ubuntu下面改一下文件所属的用户,试试是否可行:

[email protected]:~/develop$ pwd
/home/crifan/develop

[email protected]:~/develop$ ls
EABI-4.3.3_EmbedSky_20091210.tar  tq2440u
[email protected]:~/develop$ sudo chown -hR tq2440 tq2440/

即,把共享出去的tq2440文件夹及其下面所有文件所属的用户从原先的crifan改成tq2440,然后再去windows下面重新访问,的确就可以实现写write的操作了。

看来此处问题原因就是这个文件/文件夹所属用户权限不正确,导致无法写入的。

【后记 2011-04-02】

前面已经实现了从windows中修改ubuntu中的文件了,但是还是有个问题。

本身,我从ubuntu中共享出去的目录是tq2440/ ,但是是用crifan用户创建的,但是我共享出去的tq2440/文件夹,是给一个叫做tq2440的用户所共享的,现在我虽然可以在windows下面对tq2440文件夹的上层文件夹develop进行写入操作,但是却无法对tq2440目录及下面的文件进行修改。

后来,通过chown命令,将tq2440文件夹及下面文件的所有者owner都改为tq2440用户:

chown -hR tq2440 tq2440/

虽然可以实现需要的效果,即,从windows上可以修改qt2440目录及其下的文件了,但是回到ubuntu下,用现在登录的crifan用户去tq2440目录下面操作,却无法进行写入修改等操作了,所以很是郁闷。

然后想到,是不是可以将crifan和tq2440两个用户都设置到一个组里面,然后给该组设置权限为可以修改。

然后就去尝试,新建了一个组叫做develop,然后把crifan和tq2440都加入到该组中。然后去设置tq2440目录的组为develop:

chown -hR crifan:develop qt2440/

但是,结果去windows下面尝试,结果还是没有写的权限。

【后记 2011-04-03】

后来经过尝试,先去 系统 -> 系统管理 -> 用户和组,把crifan和tq2440两个用户都设置为develop组,

然后再去把tq2440的用户权限添加为 同组用户也有读和写的权限:

sudo chown -hR crifan:develop tq2440/

这样设置才是正确的,然后tq2440的用户,在windows下访问Ubuntu中通过samba共享出来的tq2440的文件夹,就也可以写入了。

最后,经过折腾,还是通过修改组和其他用户的操作权限才解决次问题:

chmod -R go+rwx qt2440/

其中:

-R recursive,递归模式,修改该文件夹及其下所有文件和文件夹

go g是group组,o是other其他用户

+ 是添加权限

rwx r是read读,w是write写,x是execute执行

这样,就可以针对tq2440及其下所有文件都改成了,不仅创建者crifan自己可以修改,同组的其他用户和其他的用户,都可以有写的权限了:

[email protected]:~/develop$ chmod -R ga+rwx tq2440/
[email protected]:~/develop$ ls -l
总计 499128
drwxrwxrwx 3 crifan develop      4096 2011-04-01 21:16 tq2440

【引用】

http://hanyuanbo.iteye.com/blog/751199

关于ls,chmod,chown等命令的具体解释:

1. 终端的最基本操作
ls          # 显示当前文件夹下的内容
-a -l -R -d #所有文件 /详细信息/递归的显示所有目录和文件/不递归
cd .. / –  # 进入上/上一次 文件夹
mkdir cp rm rmdir rm -r  vim chmod pwd mv #  创建文件夹  复制/删除/删除空文件夹/删除文件夹  编辑/改变权限/查看当前目录/移动文件
mv 文件名 新文件名  #重命名

其中的一些介绍
ls -l  #显示的内容意思
这是第一列的意义: -l连接文件
-d目录文件
-普通文件 文本文件和二进制文件
[bcp]特殊文件(即b或c或p)
这是第二列到第十列的意思: 读写执行权限
–   rwx  rwx rwx  2  root  root 1234  Jun 26 11:21  test.txt
1  2     3     4    5    6      7      8       9                   10
1. 文件的类型
2. 拥有者对该文件的权限(read write execute)
3. 群组对该文件的权限
4. 其他人对该文件的权限
5. 与该文件[夹]的连接数目
6. 拥有者的用户名
7. 群组的名称
8. 文件大小
9. 创建日期
10. 文件[夹]名称

2. 改变权限的命令:
1. chmod [-R] 750  filename/filelist 则是 111 101 000 改变各个用户的权限。如: chmod 755 /usr/local/*  将该文件夹下的文件赋予755权限
2. chmod [-R] [ugoa] [+-=] [rwx] filename/filelist

 

http://www.opensourceproject.org.cn/article.php?id=456

Symbolic Mode

The format of a symbolic mode is `[ugoa…][[+-=][rwxXs­tugo…]…][,…]’.

Multiple symbolic operations can be given, separated by commas.

A combination of the letters `ugoa’ controls which users‘ access to the file will be changed:

The user who owns it (u)
Other users in the file’s group (g)
Other users not in the file’s group (o)
All users (a)

If none of these are given, the effect is as if `a’ were given, but bits that are set in the umask are not affected.

all users (a) is effectively
user + group + others

The operator ‘+’ causes the permissions selected to be added to the existing permissions of each file; ‘-‘ causes them to be removed; and ‘=’ causes them to be the only permissions that the file has.

The letters ‘rwxXstugo’ select the new permissions for the affected users:

Read (r),
Write (w),
Execute (or access for directories) (x),
Execute only if the file is a directory or already has execute permission for some user (X),
Set user or group ID on execution (s),
Save program text on swap device (t),
The permissions that the user who owns the file currently has for it (u),
The permissions that other users in the file’s group have for it (g),
Permissions that other users not in the file’s group have for it (o).

转载请注明:在路上 » 【已解决】window中对ubuntu通过samba共享出来的文件没有写权限/无法修改

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 那你这样,和直接chmod 777 tq2440/ -R 有什么区别...
    Norz7年前 (2015-11-24)回复
87 queries in 0.121 seconds, using 20.60MB memory