标签 linux 下的文章

Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。

 安装软件

sudo apt-get install samba

 配置共享

sudo vi /etc/samba/smb.conf

在文件末尾添加以下内容:

[public]
path=/data/nfs
browseable=yes
read only=no
guest ok=yes

文件夹的可读写权限我在已经设置好了,添加了匿名的文件读写权限。

 添加系统用户到 Samba 账号:

sudo smbpasswd -a pantao # 添加系统用户 pantao 至 samba 
在执行 smbpasswd 前,需要先添加好用户 pantao,否则命令会执行失败。

重启 samba 服务

sudo service smbd restart

客户端访问

Linux 访问

smbclient -L //192.168.3.3/public

Windows 客户端访问

可以直接访问如下地址即可:

\\192.168.3.3\public

如果 public=no,则此时需要输入 samba 的用户名与密码,如果 public=yes,则作为 nobody 用户直接访问。

另外,在 Windows 客户端可以使用 net use * /del /y 这条命令清理访问缓存。

Samba 常用参数

  • comment=smb share test:该共享的备注信息
  • path=/data/nfs:共享路径
  • allow hosts=host(subnet):设置该 Samba 服务器允许的工作组或域
  • deny hosts=host(subnet):设置该 Samba 服务器拒绝的工作组或域
  • available=yes|no:设置该共享目录是否可用
  • browseable=yes|no:设置该共享目录是否可显示
  • writable=yes|no:指定该目录缺省是否可写,也可以用 readonly = no 来设置可写
  • public=yes|no:指明该共享资源是否能给游客使用, guest ok=yes 其实与 public=yes 是一样的
  • user=user,@group: user 设置所有可能使用该共享资源的用户,也可以用 @group 代表 group 这个组的所有成员,不同的项目之间使用空格或者英文逗号隔开
  • valid users=user,@group:指定能够使用该共享资源的用户和组
  • invalid users=user,@group:指定不能够使用该共享资源的用户和组
  • read list=user,@group:指定只能读取该共享资源的用户和组
  • write list=user,@group:指定能读取和写入该共享资源的用户和组
  • admin list=user,@group:指定能管理该共享资源(包括读写和权限赋予等)的用户和组
  • hide dot files=yes|no:是否像 Unix 一样,隐藏以 . 号开头的文件
  • create mode=0755:指明新建立的文件的属性,一般是0755
  • directory mode=0755:指明新建立的目录的属性,一般是 0755
  • sync always=yes|no:指明对该共享资源进行写操作后是否进行同步操作
  • short preserve case=yes|no:是否区分文件名大小写
  • preserve case=yes|no:是否保持大小写
  • case sensitive=yes|no:是否能大小写敏感,一般选 no,不然可能会引起错误
  • mangle case=yes|no:指明混合大小写
  • default case=upper|lower:指明默认的文件名是全部大写还是小写
  • force user=testuser:强制设置新建立的文件的属主是谁,如果我有一个目录, guest 用户 可以写,那么 guest 就也可以删除文件 ,但是如果我强制把建痒痒的文件的属主设置为 testuser,同时限制 create mode=0755,那么 guest 就不能删除了
  • wide links=yes|no:指明是否允许共享外符号连接,比如共享资源里面有一个连接指向非共享资源里面的文件或者目录,如果设置为 wide links=no,将使该链接不可用
  • max connections=100:最大同时连接数
  • delete readonly=yes|no:是否能删除共享资源里面已经被指定为只读的文件

以前还没有在 Linux 下使用大于 2T 的硬盘,今天入的一块 8T 硬盘,按以前的 fdisk ,发现一直就只有 2T,才发现,原来还有这么个问题,先记录下今天格式化的命令:

parted                 # 打开 parted 程序
select /dev/sdc        # 选择需要操作的硬盘
mklabel gpt            # 将 MBR 硬盘格式为 GPT
mkpart primary 0% 100% # 将整块硬盘分成一个分区
print                  # 打印分区信息
quit                   # 退出

完成上面的步骤之后,可以开始格式化刚才创建的分区了:

mkfs.ext4 -T largefile /dev/sdc1

完成之后,可以直接 mount 刚才格式化的硬盘

sudo mkdir /data
mount /dev/sdc1 /data

使用 df -h 就可以看到该磁盘的大小,如果想让系统每次启动之后自动挂载,可以编辑 /etc/fstab 文件,添加下面这一行:

/dev/sdc1 /data ext4 defaults 0 0

这么多年积累下来的照片(RAW文件都保留着)太多,西数的 NAS 有点不够用了,想着就入了一块 8T 的硬盘,扩展一下家里面的这台老台式机(安装的是 Elementary OS),搭建了一个 NFS 服务。

安装软件

sudo apt-get install nfs-kernel-server nfs-common

修改配置文件

sudo vi /etc/exports

在末尾添加下面这行:

/data/nfs *(rw,sync,no_root_squash,no_subtree_check)

上面这段表达的意思是:

/data/nfs            : 共享的目录
*                    : 指定哪些用户 可以访问
                       *             所有可以 ping 通本主机的用户 
                       192.168.3.*   指定网段,在该网段中的用户可以挂载
                       192.168.3.14  只有该 IP 的用户才能挂载
(                    : 共享参数
  rw,                  : 权限
                         ro: 只读
                         rw: 读写
  sync,                : 同步写入硬盘
  no_root_squash,      : root 用户访问此目录,具有 root 操作权限
  no_subtree_check     : 不检查父目录权限
)

常用的共享参数还有:

  • ro:只读访问
  • rw:读写访问
  • sync:同步写入硬盘
  • async:暂存内存
  • secure:NFS 通过 1024 以下的安全 TCP/IP 端口发送
  • insecure:NFS 通过 1024 以上的端口发送
  • wdelay:多个用户对共享目录进行写操作时,则按组写入数据(默认)
  • no_wdelay:多个用户对共享目录进行写操作时,则立即写入数据
  • hide:不共享其子目录
  • no_hide:共享其子目录
  • subtree_check:强制 NFS 检查父目录的权限
  • no_subtree_check:不检查父目录权限
  • all_squash:任何访问者,都转为匿名
  • root_squash :root 用户访问此目录, 映射成如 anonymous 用户一样的权限(默认)
  • no_root_squash:root 用户访问此目录,具有 root 操作权限

重启 nfs 服务

sudo /etc/init.d/nfs-kernel-server restart

到此,nfs 的服务就搭建好了

客户端访问服务器

  1. 检查客户端与服务端的网络是否连通

    ping 192.168.3.3
  2. 查看服务端的共享目录设置

    showmount -e 192.168.3.3
    
    Export list for 192.168.3.3:
    /data/nfs *
  3. 将该目录挂载到本地

    mount 192.168.3.3:/data/nfs /path/to/local/folder
  4. 访问

    cd /path/to/local/folder

介绍

很多软件都必须服务器提供了 Java 支持,本文将指导你完成在 Ubuntu 服务器如何安装与管理多版本的 Java.

安装默认的 JRE/JDK

这是被推荐的,也是最简单的方式,默认情况下,在 Ubuntu 12.04 上面,会安装 OpenJDK 6,而在 Ubuntu 12.10+ 上面,会安装 OpenJDK 7

通过 apt-get 工具安装 Java 很简单,首先更新包索引:

sudo apt-get update

安装检查你的服务器上面是否已经安装了 Java:

java -version

如果该命令返回 『The program java can be found in the following packages』,则表明你的服务器上面还没有安装任何版本的 Java,那么,执行下面这行命令即可安装默认版本的 Java:

sudo apt-get install default-jre

这会安装 Java 运行时环境(JRE),如果你需要安装 Java 开发工具包(JDK)来构建或编译 Java 程序(比如 Apache Ant,Apache Maven 等),那么执行下面这行命令:

sudo apt-get install default-jdk

这人安装 Java 需要的所有内容。

其它的步骤,都是可选的,而且应该在你需要的时候才执行。

安装 OpenJDK 7 (可选)

要安装 OpenJDK 7 ,执行下面的命令:

sudo apt-get install openjdk-7-jre 

这会安装 Java 运行时环境 (JRE),如果你需要安装 Java 开发工具包,则执行下面的命令:

sudo apt-get install openjdk-7-jdk

安装 Orache JDK (可选)

Orache JDK 是官方的 JDK,但是它现在已经不再被是 Ubuntu 的默认安装选项了。但是你还仍然可以通过 apt-get 安装它,要安装任何版本的 Oracle JDK,都需要先执行下面的命令:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

根据你要安装的 JDK 版本的不同,选择下面不同的命令执行:

Oracle JDK 6

这是一个很古老的版本,但是同样可以安装

sudo apt-get install oracle-java6-installer

Oracle JDK 7

这是最新的稳定发布版本:

sudo apt-get install oracle-java7-installer

Oracle JDK 8

这是一个开发者预览版:

sudo apt-get install oracle-java8-installer

多版本安装 (可选)

如果你的系统中安装了多个版本的 Java,那么你可以随时设置并切换默认版本的 Java,执行下面的命令:

sudo update-alternatives --config java

如果你的系统中安装了多个版本,那么通常会有如下这样的返回结果:

There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:

你现在就可以通过输入每一个版本前面的序号来设置默认的 Java 版本,这种默认版本的设置方法,对于 Java 编译器 javac 同样适用:

sudo update-alternatives --config javac

同样的,keytooljavadoc 以及 jarsigner 等均可以通过此种方法来设置默认版本。

设置 JAVA_HOME 环境变量

有一些程序需要系统提供一个 JAVA_HOME 环境变量,首先找到当前系统安装了哪些版本的Java。

sudo update-alternatives --config java

返回如下这样的结果:

There are 2 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1062      manual mode

Press enter to keep the current choice[*], or type selection number:

那么,安装路径就有下面这些:

/usr/lib/jvm/java-7-oracle

/usr/lib/jvm/java-6-openjdk-amd64

/usr/lib/jvm/java-7-oracle

复制你需要版本的路径,然后编辑:/etc/environment 文件:

sudo nano /etc/environment

在该文件中,添加下面这一行(同时将 YOUR_PATH 改为你刚才复制的路径):

JAVA_HOME="YOUR_PATH"

然后,重新加载该文件:

source /etc/environment

测试设置是否正确,可以执行下面这行命令:

echo $JAVA_HOME

如果成功显示了你设置的路径,则表示设置成功。

本文所讲解的是我本人在安装配置 CentOS 7 桌面办公环境时所得到的经验,若您不需要安装配置 CentOS 7 的桌面办公环境,那么本文对您而言,没有任何用处,若您需要配置,则您需要先载最新版本的 CentOS 7 安装DVD。

基本的系统安装

插入安装光盘或者安装U盘之后,直接选择 Install CentOS 7 即可。

CentOS 7 Desktop.png

选择系统语言:

CentOS 7 Desktop选取系统语言.png

在安装信息摘要面板中,如下图所示,绝大多数配置系统已经自动完成,但是我们需要设置以下几点:

  1. 软件选择
  2. 安装位置
  3. 网络和主机名

CentOS 7 Desktop本地化.png

系统默认的软件选择为最小安装,此安装会不带桌面,同样的肯定不会安装桌面软件了,若要做为桌面系统使用,您需要选择 GNOME 桌面 或者 KDE Plasma Workspaces 或者 开发及生成工作站,我在此处选择的是 开发及生成工作站

CentOS 7 Desktop 软件选择.png

同时安装了以下软件:

  • 附加开发
  • 兼容性程序库
  • 开发工具
  • 电子邮件服务器
  • EMacs
  • FTP 服务器
  • 图形生成工具
  • 硬件监控工具
  • 传统X Windows 系统的兼容性
  • 办公套件和生产率
  • 平台开发
  • 科技写作

其它的如PHP、MariaDB、PostgresQL等软件我将在系统安装完成之后再安装最新版本的,选择完成之后,点击左上角的 完成 按钮,接着选择安装位置。

CentOS 7 Desktop 安装位置.png

我使用的是整块磁盘,然后让其自动分区。

点击可以点击右下角的开始安装按钮,即可开始安装系统。如下图所示:

CentOS 7 Desktop 开始安装.png

在系统的安装过程中,您还可以设置 root 帐户的密码以及创建一个新的用户,如下图所示:

CentOS 7 Desktop 设置 Root 帐户密码.png

CentOS 7 Desktop 创建新用户.png

安装完成之后,点击右下角的重启按钮,重新引导系统。

CentOS 7 Desktop 重启.png

重新启动之后,系统会要求您接受许可协议,如下图所示:

CentOS 7 Desktop 许可协议.png

CentOS 7 Desktop 阅读并接受许可协议.png

接受之后,点击页面右下角的 完成配置,接着进行 KDump 配置,我们使用自动的即可。

CentOS 7 Desktop Kdump.png

完成之后,即可登录系统了,如下图所示,我们在前面创建的用户就可以在此处登录了,同样的,你也可以使用 root 帐户登录,在此处,我使用我在前面创建的 pantao 这个帐户登录。

CentOS 7 Desktop Login.png

CentOS 7 Desktop Login As.png

登录完成之后,系统会要求我们完成 Gnome-initial-setup ,即 `GNOME 初始化配置,首先选择语言:

CentOS 7 Desktop Set Language.png

在此处我们选择了简体中文,然后设置输入源,系统默认仅提供了拼音输入法,在此处注意,若我们选择任何一个输入源,那么在 上一项 的这个按钮上方的键盘图标旁边将会出现一个新的图标,此新图片即可用于对您选中的输入源进行更详细的配置。

CentOS 7 Desktop Input Source.png

完成输入源配置之后,我们即可以开始使用 CentOS Linux 系统了。

CentOS 7 Desktop Start Using CentOS Linux.png

办公软件安装

安装完成基本系统之后,接下来我们安装 办公软件,包括但不限于下面这些:

  • 图形图像处理

    • GIMP - 用于替换我们在 OS X 或者 Windows 系统中的 Photoshop 软件;
    • Shotwell Photo Manager - 可应用于 GNOME 桌面环境的全功能的个人照片管理软件,可替换 Photoshop Lightroom
    • Pencil - 替换 Windows 系统下的 VISIO 的应用;
    • Inkscape - 开源的矢量图绘制工具;
  • 网络应用

    • FirefoxOperaGoogle Chrome - 网页浏览器;
    • Flash Player - Flash 播放器;
    • FileZilla - 多进程的 FTP 客户端;
    • ThunderBird - 邮箱与新闻客户端;
    • Evolution
    • Transmission BitTorrent Client - BT下载客户端;
    • Pidgin - Pidgin 协议插件,可联系至 MS Office Communicator;
  • 办公工具

    • LibreOffice Writer - 替换 Microsoft Word;
    • LibreOffice Calc - 替换 Microsoft Excel;
    • Document Viewer - PDF阅读工具;
    • Scribus - 开源桌面版发布工具(DTP);
  • 声音与视频

    • Amarok - 音频播放工具
    • Totem - 媒体播放工具(视频与音频)
    • Brasero - CD/DVD 烧录工具
    • K3B - CD/DVD 烧录工具
  • 程序开发工具

    • Sublime Text - 优化编辑神器
    • Bluefish - 文本编辑器
    • VirtualBox - Oracle 推出的虚拟化软件,可以让你将 Windows 系统运行在虚拟环境下,这样,在必要的时候,你还可以使用一些只能在Windows 下面使用的软件。