Linux 远程和本地的一些解决方式
有的小伙伴想Linux 远程登录 两台机器同一时候root登录。事实上能够同一时候多个用户的。
Linux是多用户的多任务系统,能够同一时候多个用户登录到系统,也能够一个用户通过不同终端登录到一个系统运行不同的操作:
root@Saiver:~# w
22:42:31 up 32 days, 6:03, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 222.x.x.x 19:55 0.00s 0.33s 0.00s w
root@Saiver:~# who
root pts/0 2012-12-08 19:55 (222.173.249.242)
root@Saiver:~# whoami
root
root@Saiver:~#
我的server系统的提示信息。你能够使用 w who whoami 以及 ps 命令进行查看~
假设不习惯linux习惯了WINDOWS的用户能够用一些工具来做。比方PUTTY,WINSCP等。
mount远程文件夹并让本地非root用户可读可写
远程与本地是两台linux机器。要实现如题效果,传统的nfs的mount方式尽管简单方便却不行
nfs的方式:
sudo mount -t nfs -o rw 192.168.0.xx:/path /mnt/test
在本地你会发现/mnt/test下的文件用户为nobody,普通用户能够读,可是非root用户写不了(不用sudo不用su),
有的人想通过改/etc/fstab 或者远程主机的/etc/exports来实现,
我告诉你趁早放弃,nfs没有这个功能,它无法指定uid gid username,password。
cifs能够解决问题,通俗点讲就是samba的方式
远程主机安装samba服务
部分/etc/samba/smb.conf 内容
[testuser]
path = /home/testuser/share
read only = no
; browseable = yes
valid users = testuser
共享文件夹/home/testuser/share。有效用户为testuser
本地操作例如以下
安装 cifs-utils sudo apt-get install cifs-utils 神马的
命令id得到本地用户localuser的id,gid
比方得到uid=1000(localuser) gid=1000(localuser)
改动/etc/fstab
//192.168.0.xx/testuser/ /mnt/test/ cifs rw,noauto,defaults,username=testuser,password=testuserpassword,uid=1000,gid=1000 0 0
然后sudo mount /mnt/test就会挂载,此时localuser翻身做主人了,注意为了安全fstab中能够不写password=testuserpassword这段,然后在mount时手动输入密码。假设要开机自己主动挂载,能够把noauto改成auto,或者在启动脚本中mount
WINDOWS和LINUX那么挂载怎样实现呢?
一、功能说明:
在Windows操作系统之间。能够通过映射网络驱动器的方式,将某个共享文件夹映射成一个磁盘文件系统,在Linux下,能够通过smbmount命令来实现相似的功能,将Windows的某个共享文件夹挂载到Linux下的某个文件夹下。
測试平台: Red Flag DC5.0 x86-sp2
Windows xp sp2
当前測试条件:
1、Windows和Linux共处于同一个局域网中,能够互相ping通,都未设置防火墙
2、Windows的IP地址:192.168.0.103
3、Linux的IP地址:192.168.0.150
4、Windows上当前有例如以下共享:c盘,share(everyone具有读取权限)
5、Windows上的用户有administrator(管理员组用户帐号)。guest(当前未启用)。没有root帐号
6、Linux上安装有相关的RPM包:samba-client。它是Samba客户端工具,安装后能够使用smbmount命令
二、smbmount
基本測试步骤例如以下:
语法:smbmount //IP地址/共享名 挂载点 -o 选项1,选项2……
1、挂载c共享:
[root@redflag ~]# mkdir /mnt/share
[root@redflag ~]# smbmount //192.168.0.103/c /mnt/share -o username=administrator
Password:
[root@redflag ~]# umount /mnt/share //卸载挂载点
2、挂载temp共享(启用guest帐户)
[root@redflag ~]# smbmount //192.168.60.188/temp /mnt/share
Password:
此时。未指定帐号和password,则使用环境变量USER为帐号,使用环境变量PASSWD作为password,由于Windows已经启用guest帐号。且temp共享为同意不论什么人读取,所以此次命令执行成功。
[root@redflag ~]# umount /mnt/share //卸载挂载点
3、挂载temp共享(未启用guest帐户)
[root@redflag ~]# smbmount //192.168. 0.103/temp ./temp
Password:
Anonymous login successful
2068: tree connect failed: ERRDOS - ERRnoaccess (Access denied.)
SMB connection failed
此时,guest帐号被停用。所以连接失败。
4、实现开机自己主动挂载
为了使机器在启动的时候自己主动挂载Samba共享,改动/etc/fstab加入一行:
//server/share /mount/point smbfs username=[username],password=[password] 0 0
server是Sambaserver的名称或者IP地址。
share是Samba的共享文件夹。 /mount/point是本机挂载的文件夹。 username和passoword是訪问Sambaserver的用户名和password。
三、mount命令
主要的測试环境是一样的仅仅是在命令上mount多加了一些參数。这里仅仅介绍挂载c盘。
挂载c共享:
[root@redflag ~]# mkdir /mnt/share
[root@redflag ~]# mount –t smbfs //192.168.0.103/c /mnt/share -o username=administrator
Password:
[root@redflag ~]# umount /mnt/share
四、新版本号的smb服务
对于红旗Asianux3.0以及redhat Enterprise 5版本号的linux系统,系统已经将smbmount这种命令了并且-t smbfs也消失。曾经的smbfs是为了和Windows好识别。smbfs协议改为cifs了,cifs才是正式的官方协议。
范例:
[root@redflag ~]# mount.cifs //IP/share /point -o username=administrator%123456
[root@redflag ~]# mount.cifs //192.168.2.230/job /mnt/share -o username=administartor%123456
经常使用的命令:sudo mount.cifs //192.168.0.2/x ./y/ -o rw,uid=1000,gid=1000,username=administrator%""
linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享
linux是一个优秀的开放源代码的操作系统,能够执行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。如今很多企业的计算机系统都是由UNIX系 统、Linux系统和Windows系统组成的混合系统,不同系统之间常常须要进行数据交换。以下我依据自己的实际工作经验介绍一下怎样在linux系统 下挂接(mount)光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX NFS网络共享。
挂接命令(mount)
首先。介绍一下挂接(mount)命令的用法,mount命令參数许多,这里主要讲一下今天我们要用到的。
命令格式:
mount [-t vfstype] [-o options] device dir
当中:
1.-t vfstype 指定文件系统的类型。通常不必指定。mount 会自己主动选择正确的类型。经常使用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
2.-o options 主要用来描写叙述设备或档案的挂接方式。
经常使用的參数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:採用仅仅读方式挂接设备
rw:採用读写方式挂接设备
iocharset:指定訪问文件系统所用字符集
3.device 要挂接(mount)的设备。
4.dir设备在系统上的挂接点(mount point)。
挂接光盘镜像文件
因为近年来磁盘技术的巨大进步。新的电脑系统都配备了大容量的磁盘系统,在Windows下很多人都习惯把软件和资料做成光盘镜像文件通过虚拟 光驱来使用。
这样做有很多优点:一、减轻了光驱的磨损;二、如今硬盘容量巨大存放几十个光盘镜像文件不成问题。随用随调十分方便;三、硬盘的读取速度要远 远高于光盘的读取速度。CPU占用率大大减少。
事实上linux系统下制作和使用光盘镜像比Windows系统更方便,不必借用不论什么第三方软件包。
1、从光盘制作光盘镜像文件。将光盘放入光驱,运行以下的命令。
#cp /dev/cdrom /home/sunky/mydisk.iso 或
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:运行上面的不论什么一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso
2、将文件和文件夹制作成光盘镜像文件,运行以下的命令。
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:这条命令将/home/sunky/mydir文件夹下全部的文件夹和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk
3、光盘镜像文件的挂接(mount)
#mkdir /mnt/vcdrom
注:建立一个文件夹用来作挂接点(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用/mnt/vcdrom就能够訪问盘镜像文件mydisk.iso里的全部文件了。
挂接移动硬盘
对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
在这里能够清楚地看到系统有一块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4, /dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后。再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdc: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS
/dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)
/dev/sdc5 511 4864 34973473+ b Win95 FAT32
大家应该能够发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?
、/dev/sdc2,当中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们能够使用以下的命令挂接/dev/sdc1和/dev/sdc5。
#mkdir -p /mnt/usbhd1
#mkdir -p /mnt/usbhd2
注:建立文件夹用来作挂接点(mount point)
#mount -t ntfs /dev/sdc1 /mnt/usbhd1
#mount -t vfat /dev/sdc5 /mnt/usbhd2
注:对ntfs格式的磁盘分区应使用-t ntfs 參数,对fat32格式的磁盘分区应使用-t vfat參数。
若汉字文件名称显示为乱码或不显示。能够使用以下的命令格式。
#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
linux系统下使用fdisk分区命令和mkfs文件系统创建命令能够将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。
这样。在linux下使用就更方便了。使用以下的命令直接挂接就可以。
#mount /dev/sdc1 /mnt/usbhd1
挂接U盘
和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。用法和移动硬盘全然一样。
插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
插入U盘后,再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdd: 131 MB, 131072000 bytes
9 heads, 32 sectors/track, 888 cylinders
Units = cylinders of 288 * 512 = 147456 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 * 1 889 127983+ b Win95 FAT32
Partition 1 has different physical/logical endings:
phys=(1000, 8, 32) logical=(888, 7, 31)
系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。
#mkdir -p /mnt/usb
注:建立一个文件夹用来作挂接点(mount point)
#mount -t vfat /dev/sdd1 /mnt/usb
注:如今能够通过/mnt/usb来訪问U盘了, 若汉字文件名称显示为乱码或不显示。能够使用以下的命令。
#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
挂接Windows文件共享
Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba 软件包。如今流行的linux发行版绝大多数已经包括了samba软件包,假设安装linux系统时未安装samba请首先安装samba。
当然也能够到 www.samba.org站点下载......新的版本号是3.0.10版。
当windows系统共享设置好以后,就能够在linuxclient挂接(mount)了。详细操作例如以下:
# mkdir –p /mnt/samba
注:建立一个文件夹用来作挂接点(mount point)
# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba
注:administrator 和 pldy123 是ip地址为10.140.133.23 windows计算机的一个username和password。c$是这台计算机的一个磁盘共享
如此就能够在linux系统上通过/mnt/samba来訪问windows系统磁盘上的文件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windows xp、windows 2003环境下測试通过。
挂接UNIX系统NFS文件共享
类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),以下我们就以SUN Solaris2.8和REDHAT as server 3 为例简介一下在linux下怎样mount nfs网络共享。
在linuxclient挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。
1、Solaris系统NFS服务端配置方法例如以下:
(1)改动 /etc/dfs/dfstab, 添加共享文件夹
share -F nfs -o rw /export/home/sunky
(2)启动nfs服务
# /etc/init.d/nfs.server start
(3)NFS服务启动以后。也能够使用以下的命令添加新的共享
# share /export/home/sunky1
# share /export/home/sunky2
注:/export/home/sunky和/export/home/sunky1是准备共享的文件夹
2、linux系统NFS服务端配置方法例如以下:
(1)改动 /etc/exports,添加共享文件夹
/export/home/sunky 10.140.133.23(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
注:/export/home/文件夹下的sunky、sunky1、sunky2是准备共享的文件夹,10.140.133.23、*、 linux-client是被同意挂接此共享linux客户机的IP地址或主机名。假设要使用主机名linux-client必须在服务端主机 /etc/hosts文件中添加linux-client主机ip定义。
格式例如以下:
10.140.133.23 linux-client
(2)启动与停止NFS服务
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
/etc/rc.d/init.d/nfs start 启动NFS服务
/etc/rc.d/init.d/nfs stop 停止NFS服务
注:若改动/etc/export文件添加新的共享,应先停止NFS服务,再启动NFS服务方能使新添加的共享起作用。使用命令exportfs -rv也能够达到相同的效果。
3、linuxclient挂接(mount)其它linux系统或UNIX系统的NFS共享
# mkdir –p /mnt/nfs
注:建立一个文件夹用来作挂接点(mount point)
#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
注:这里我们如果10.140.133.9是NFS服务端的主机IP地址,当然这里也能够使用主机名。但必须在本机/etc/hosts文件中添加服务端ip定义。/export/home/sunky为服务端共享的文件夹。
如此就能够在linuxclient通过/mnt/nfs来訪问其他linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc环境下測试通过。
权限问题:
假設 server 端的使用者 jack, user id 為 1818, gid 為 1818, client 端也有一個使用者 jack,可是 uid 及 gid 是 1818。
client 端的 jack 希望能全然讀寫 server 端的 /home/jack 這個目錄。
server 端的 /etc/exports 是
這樣寫的:
/home/jack *(rw,all_squash,anonuid=1818,anongid=1818)
這個的設定檔的意思是。全部 client 端的使用者存取 server 端 /home/jack 這
目錄時,都會 map 成 server 端的 jack (uid,gid=1818)。
我 mount 的結果是
1. client 端的 root 能够全然存取該目錄, 包含讀、寫、殺……等
2. client 端的 jack (uid,gid=1818) 我能够做:
rm -rf server_jack/*
cp something server_jack/
mkdir server_jack/a
转载出处:http://blog.csdn.net/djy1992/article/details/47972129