linux下安装samb:
创建共享文件夹:
方法1:|
ubuntu下通过右击文件 =》 properties =》 local network share =》 勾选 share this folder 和 allow others to create ......
修改后刷新即可看到。
方法2:
命令行下直接编辑配置文件 /etc/samb/smb.conf来配置:
sudo vim /etc/samb/smb.conf
在末尾添加:
[allenshare]
path = /home/allen/
available = yes
browseable = yes
#public = yes
user = allen
write list = allen
writable = yes
directory mask = 0777
修改后需要重启samb服务:
sudo service smbd restart
在window访问共享目录创建的文件属于nobody / nogroup:
查看一下/etc/samba/smb.conf,是否有如下配置:
####### Authentication #######
………………
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam
这个配置项的作用是,选择用户登录密码的保存方式,这里选择的是tdbsam,即samba的数据库,对应的文件是passdb.tdb。不同版本的samba存储的路径可能并不相同:
/var/lib/samba/private/passdb.tdb
/var/lib/samba/passdb.tdb
当你从其他机器访问samba共享的目录时,smbd会以用户名为键值,提取passdb.tdb中的密码信息进行校验。如果passdb.tdb中查不到相应的用户名,smbd会将你当做guest用户去访问共享目录,而guest用户即是nobody:nogroup。
解决的办法就是向数据库中添加你的用户信息,使用工具smbpasswd:
sudo smbpasswd -a YOURNAME
根据提示,输入密码即可。
之后,可以使用工具tdbtool查询刚刚添加的用户:
$sudo tdbtool /var/lib/samba/private/passdb.tdb
tdb>keys
key 13 bytes: RID_000003e8
key 19 bytes: INFO/minor_version
key 9 bytes: NEXT_RID
key 19 bytes: USER_YOURNAME
key 13 bytes: INFO/version
其中USER_XXXX即是新增的用户。
或者直接使用pdbedit命令,我们列出几个主要的:
pdbedit -i smbpasswd:/etc/samba/smbpasswd
pdbedit -a username:新建Samba账户。
pdbedit -x username:删除Samba账户。
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv:列出Samba用户列表的详细信息。
pdbedit -c “[D]” –u username:暂停该Samba用户的账号。
pdbedit -c “[]” –u username:恢复该Samba用户的账号。
以上方法并不能解决所有出现nobody:nogroup的问题,我再分享一下我的解题过程:
先是百度找来找去,没找到合适的办法,就只好自己动手了:
首先,关闭smbd:
service smbd stop
或
/etc/init.d/smbd stop
然后,前台运行smbd,并设定debuglevel(1~10,数字越大,输出debug信息越多),level10的debug信息太多了,建议先从1开始,慢慢去查,先找到出错的点,再慢慢放大debug信息:
smbd -S -F -d 1
定位到出错的信息之后,再有针对性的进行百度或者自己查帮助。