Management User dan Group di FreeBSD

Bagian 6

Management User dan Group

 

 

FreeBSD adalah software yang multitask, seperti system UNIX variannya, FreeBSD mengatur dan manage user (pemakai) dengan jelas. Jika berbicara tentang user tentu tidak lepas dengan hak access baik hak access file/direktori atau hak access terhadap system. Pemakai (user) harus mengikuti aturan aturan tertentu yang telah ditentukan. Ini terkait erat dengan keamanan atau security.

Sebelum lebih jauh membahas management user dan group ada baiknya untuk membahas tentang attribut file, yang tentu saja sangat singat. Untuk mendapatkan informasi lebih jauh dapat dibaca dalam butuh UNIX Power Tool.

 

  1. Attribut File dan Direktori FreeBSD

Unix sistem memiliki struktur hak akses file dan direktori yang unik. UNIX FreeBSD memiliki banyak kesamaan struktur direktori dengan banyak OS UNIX yang lain.

File atau direktori dalam UNIX ditetapkan dengan penamaan yang panjang sekitar 32 karakter. Besar dan kecilnya huruf sangat diperhatikan, tidak menggunakan spasi dan dapat terhubung dengan karakter khusus yang tidak bertentangkan dengan penulisan direktori tree. Semisal tanda “/”, ini dianggap sebagai tanda direktori dan contoh lainnya.

Sebuah direktori / file memiliki attribut sebagai berikut

drwxrwxrwx 4 <owner> <group> <besar_file> <pembuatan> <directory>

-rwxrwxrwx 4 <owner> <group> <besar_file> <pembuatan> <file>

 

“drwxrwxrwx” merupakan attribut untuk menentukan sebuah file atau direktori.

d merupakan keterangan direktori, untuk file “-”.

rwx untuk blok attribut owner (pemilik) read, write dan execute.

rwx untuk blok attribut group (kelompok) read write dan execute.

rwx untuk blok attribut other (yang lainnya) read write dan execute.

Untuk merubah mode file dapat digunakan hitungan biner BCD dengan harga 421 sehingga setiap blok attribut berharga 7, sehingga jika seorang pemilik ingin memberikan hak akses pada group dan other read saja dapat di berikan mode 744 sehingga bentuk nyata attribut file tersebut drwxr–r–.

Perintah untuk merubah attribut file baik mode  file, pemilik, group  secara berurutan :

$ chmod <mode_file/dir> <nama_file/dir>

$ chmod <options> <owner> <nama_file/dir>

$ chgrp <options> <group> <nama_file/dir>

 

Untuk lebih lengkapnya gunakan perintah “man <command>”.

 

  1. File Konfigurasi User dan group

Owner dan group dalam attribut file sangat erat kaitannya dengan user dan group yang terdapat di setiap UNIX OS seperti FreeBSD. Dalam FreeBSD setiap user memiliki UID (user id) dan GUID (group ID) yang tercatat dalam direktory /etc antara lain terdapat file-file sebagai berikut :

Terdapat beberapa file yang berhubungan dengan user dan group antara lain :

  • /etc/adduser.conf

File ini dibuat secara otomatis oleh program adduser. Jika administrator (root) telah melakukan perintah adduser dan menyimpan konfigurasinya. File ini merupakan konfigurasi adduser antara lain password user, file titik yang digunakan sebagai startup login user, logfile, home direktory dan lain sebagainya.

  • /etc/adduser.message

Merupakan file pesan seperti ucapan selamat untuk user baru. File ini akan dikirimkan dari root (pembuat user) kepada user baru melalui e-mail.

  • /etc/shells

Merupakan daftar shell yang dipakai

  • /etc/passwd

File /etc/passwd

 

# $FreeBSD: src/etc/master.passwd,v 1.25 1999/09/13 17:09:07 peter Exp $

#

root:*:0:0:Charlie &:/root:/bin/csh

toor:*:0:0:Bourne-again Superuser:/root:

daemon:*:1:1:Owner of many system processes:/root:/sbin/nologin

operator:*:2:5:System &:/:/sbin/nologin

bin:*:3:7:Binaries Commands and Source,,,:/:/sbin/nologin

tty:*:4:65533:Tty Sandbox:/:/sbin/nologin

kmem:*:5:65533:KMem Sandbox:/:/sbin/nologin

games:*:7:13:Games pseudo-user:/usr/games:/sbin/nologin

news:*:8:8:News Subsystem:/:/sbin/nologin

man:*:9:9:Mister Man Pages:/usr/share/man:/sbin/nologin

bind:*:53:53:Bind Sandbox:/:/sbin/nologin

uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico

xten:*:67:67:X-10 daemon:/usr/local/xten:/sbin/nologin

pop:*:68:6:Post Office Owner:/nonexistent:/sbin/nologin

nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin

 

  • /etc/master.passwd

Berikut ini adalah contoh file /etc/master.passwd

 

# $FreeBSD: src/etc/master.passwd,v 1.25 1999/09/13 17:09:07 peter Exp $

#

root:$1$Edf84VagU$9kjlkn6XdAe1:0:0::0:0:Charlie &:/root:/bin/csh

toor:*:0:0::0:0:Bourne-again Superuser:/root:

daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin

operator:*:2:5::0:0:System &:/:/sbin/nologin

bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin

tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin

kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin

games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin

news:*:8:8::0:0:News Subsystem:/:/sbin/nologin

man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin

bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin

uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico

xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin

pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin

sis:$kasdkoi[werr:1000:100::0:0:sIswanto:/home/sis:/usr/local/bin/tcsh

nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin

 

Tiap field dibatasi oleh karakter “:” diambil contoh baris sis :

 

Sis                     User Name (Nama User)

$kasdkoi[werr           Password terenkripsi

1000                    User Id

100                     Group Uid

(null)                  Kosong : Class (default)

0                       waktu perubahan password (second)

0                       waxtu expire (second)

sIswanto                Nama Lengkap

/home/sis               Home direktory user

/usr/local/bin/tcsh     shell user

 

Password terenkripsi tidak dicantumkan dalam /etc/passwd, karena file tersebut memiliki attribut file -rw-r–r– sedangkan dalam /etc/master.passwd ditampilkan attribut file ini -rw——-, file ini akan dicompile menjadi /etc/spwd.db setiap kali ada perubahannya.

Dua file tersebut diatas untuk mengeditnya dapat menggunakan /usr/sbin/vipw, jika dalam editing terdapat perubahan secara otomatis akan ada perubahan pada file /etc/passwd dan /etc/master.passwd, kemudian pada saat penyimpanan selesai program vipw akan mengkompile kedalam /etc/spwd.db.

Baris waktu perubahan password dan waktu expire di set 0 berarti user tidak perlu mengganti password dalam batasan waktu tertentu.

  • /etc/group

Merupakan daftar group yang ada dalam system. Group ini berfungsi membedakan beberapa kelompok user yang memiliki login dalam system. Seperti group staff, wheel, guest dan lain sebagainya.

  • Konfigurasi umum Login User

q  /etc/csh.login

File ini dapat diletakkan perintah startup default untuk semua user. Fungsinya sama dengan file .login dalam direktori home user hanya saja file ini dibaca semua user yang login, biasanya menampung script path dan lainnya. Secara default file ini berisi coment.

q  /etc/csh.cshrc

File berisi script alias command, bentuk prompt dan lainnya, fungsinya sama dengan  file .cshrc dalam home direktori user. Default file ini hanya berisi coment dan petunjuk.

q  /etc/csh.logout

File ini akan di eksekusi oleh semua user jika user keluar dari system (logout).

q  /etc/login.conf

File ini berisi database login class, konfigurasi attribut login class.

q  /etc/login.access

File ini untuk mengatur user  untuk melakukan akses login dari lokal atau tertentu sesuai dengan settingnya.

Cara penulisannya adalah

Permission : users : origin

Permission merupakan karakter +(allow) dan – (deny). User merupakan nama user. Dan origin merupakan asal user melakukan akses terminal dapat berupa nama domain atau host atau host lokal.

-:ALL EXCEPT wheel shutdown sync:console

-:wheel:ALL EXCEPT LOCAL umm.ac.id

Menambah User

 

Dua cara dalam menambah user dalam FreeBSD yaitu under adduser command dan pw command, bedanya adduser merupakan script perl yang interaktif jika dipakai sedangkan pw  program yang dapat digunakan untuk membuat, menghapus, mengedit dan menampilkan user dan group.

Pada perintah adduser terdapat configurasi /etc/adduser.conf yang berisi tentang penjelasan kondisi. File konfigurasi ini jangan sampai rubah, karena file ini dibuat oleh adduser program.

 

$ adduser

Use option “-silent” if you don’t want to see all warnings and questions.

 

Check /etc/shells

Check /etc/master.passwd

Check /etc/group

Enter your default shell: csh date no sh tcsh [tcsh]:

Your default shell is: tcsh -> /bin/tcsh

Enter your default HOME partition: [/home]:

Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:

Send message from file: /etc/adduser.message no

[/etc/adduser.message]:

Use passwords (y/n) [y]:

 

Ok, let’s go.

Don’t worry about mistakes. I will give you the chance later to correct any inpu

t.

Enter username [a-z0-9_-]: anto

Enter full name []: anto

Enter shell csh date no sh tcsh [tcsh]:

Enter home directory (full path) [/home/anto]:

Uid [1003]:

Enter login class: default []:

Login group anto [anto]: staff

Login group is “staff”. Invite anto into other groups: guest no

[no]:

Enter password []:

Use an empty password? (y/n) [y]:

 

Name:     anto

Password: ****

Fullname: anto

Uid:      1003

Gid:      20 (staff)

Class:

Groups:   staff

HOME:     /home/anto

Shell:    /bin/tcsh

OK? (y/n) [y]:

Added user “anto”

Send message to “anto” and: no root second_mail_address [no]:

 

anto,

 

your account “anto” was created.

Have fun!

 

See also chpass(1), finger(1), passwd(1)

 

Add anything to default message (y/n) [n]:

Send message (y/n) [y]: n

Copy files from /usr/share/skel to /home/anto

Add another user? (y/n) [y]: n

Goodbye!

Menghapus user

 

Perintah menghapus user adalah rmuser misalnya sebagai berikut :

 

$ rmuser anto

Matching password entry:

 

anto::1003:20::0:0:anto:/home/anto:/bin/tcsh

 

Is this the entry you wish to remove? y

Remove user’s home directory (/home/anto)? y

Updating password file, updating databases, done.

Updating group file: (no changes) done.

Removing user’s home directory (/home/anto): done.

Removing files belonging to anto from /tmp: done.

Removing files belonging to anto from /var/tmp: done.

Removing files belonging to anto from /var/tmp/vi.recover: done.

Group

 

Untuk menambah group atau menghapusnya anda dapat langsung membuka file  /etc/group dan kemudian mengeditnya seperti pada isi file group dibawah ini.

 

wheel:*:0:root

daemon:*:1:daemon

kmem:*:2:root

sys:*:3:root

tty:*:4:root

operator:*:5:root

mail:*:6:

bin:*:7:

news:*:8:

man:*:9:

games:*:13:

staff:*:20:root

guest:*:31:root

bind:*:53:

uucp:*:66:

xten:*:67:xten

dialer:*:68:

network:*:69:

www:*:1001:

nogroup:*:65533:

nobody:*:65534:

 

Untuk menambahkan anda dapat menambahkan baris seperti contoh diatas. Dan menghapusnya anda tinggal menghapus satu baris tertentu.

Pada file group baris pertama terdapat group wheel, jika user termasuk dalam group ini maka dengan demikian user dapat masuk ke superuser (root) dengan perintah su.

Perintah PW

 

Untuk menambah group dengan perintah pw sebagai berikut :

 

$ pw groupadd dosen

 

Menambah User

 

$ pw useradd anto –g staff –d /home/anto –s /usr/local/bin/tcsh

 

atau

 

$ pw useradd anto

 

 

Menghapus user

 

$ pw userdel anto

 

Menghapus group

 

$pw groupdel dosen

 

Mengubah user

 

$pw usermod anto -l aan

 

Option lain dapat dilihat dengan

 

$ man pw

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Shell Startup File User

Disetiap login user terdapat beberapa file yang di eksekusi pada startup. File tersebut biasanya merupakan default dari freebsd pada saat root menambah user dalam system dan mencopy dari /usr/share/skel ke /home/$USER. File tersebut antara lain :

  • $home/.profile

file ini hampir sama dengan /etc/profile hanya saja file ini lebih khusus digunakan oleh user yang bersangkutan. File ini secara default untuk shell sh dimana jika user menggunakan shell sh maka file ini akan dieksekusi. Didalamnya terdapat path program, terminal dan lain lain.

  • $home/.login

File ini dapat diletakkan perintah startup default untuk semua user. Fungsinya sama dengan file /etc/csh.login, file ini dibaca semua user yang login, biasanya menampung script path dan lainnya.

# $FreeBSD: src/share/skel/dot.login,v 1.14 1999/12/21 17:18:19 phantom Exp $

#

# .login – csh login script, read by login shell,

#          after `.cshrc’ at login.

#

# see also csh(1), environ(7).

#

 

set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/bin /usr/X11R6/b

in $HOME/bin)

#setenv MANPATH “/usr/share/man:/usr/X11R6/man:/usr/local/man”

 

# Interviews settings

#setenv CPU “FREEBSD”

#set path = ($path /usr/local/interviews/bin/$CPU)

#setenv MANPATH “${MANPATH}:/usr/local/interviews/man”

 

# A rightous umask

umask 22

 

[ -x /usr/games/fortune ] && /usr/games/fortune –s

 

 

  • $home/.cshrc

File berisi script alias command, bentuk prompt dan lainnya, fungsinya sama dengan  file csh.cshrc dalam /etc.

# $FreeBSD: src/share/skel/dot.cshrc,v 1.10 1999/08/28 00:21:52 peter Exp $

#

# .cshrc – csh resource script, read at beginning

#          of execution by each shell

#

# see also csh(1), environ(7).

#

 

alias h         history 25

alias j         jobs -l

alias la        ls -a

alias lf        ls -FA

alias ll        ls -lA

 

setenv  EDITOR  vi

setenv  PAGER   more

setenv  BLOCKSIZE       K

 

if ($?prompt) then

        # An interactive shell — set some stuff up

        set filec

        set history = 100

        set savehist = 100

        set mail = (/var/mail/$USER)

endif

 

  1. Disk Quota

Disk Quota quota adalah suatu fasilitas di FreeBSD yang mendukung pembatasan space untuk user atau group user. Hal ini untuk mencegah user yang sering sekali ditemui memasukkan data ke dalam home direktori sesuka hati. Fasilitas ini juga untuk membatasi space mail box user. Untuk mengaktifkan fasilitas quota ini diperlukan compile kernel sebagai berikut :

Tambahkan options sebagai berikut dalam file config kernel anda :

Options       QUOTA

 

Lakukan compilasi terhadap kernel tersebut dan reboot lah mesin anda.

            Ada 2 file konfigurasi yang diperlukan untuk mengaktifkan quota tersebut yaitu file /etc/rc.conf dan /etc/fstab, pada file /etc/rc.conf tambahkan  baris berikut :

quota_enable=”YES”   # enable quota

check_quotas=”YES”   # untuk memeriksa quota user saat system booting

 

File /etc/fstab merupakan file table file system. Tambahkan seperti  contoh berikut :

# Device                Mountpoint      FStype  Options         Dump    Pass#

/dev/wd0s1b             none            swap    sw              0       0

/dev/wd0s1a             /               ufs     rw              1       1

/dev/wd0s1g             /home1          ufs     rw,userquota    2       2

/dev/wd0s1e             /usr            ufs     rw              2       2

/dev/wd0s1f             /var            ufs     rw,userquota    2       2

proc                    /proc           procfs  rw              0       0

 

Pada contoh diatas direktory /home1 dan /var merupakan file system yang dibatasi space untuk user (userquota). /home1 merupakan direktory yang digunakan untuk direktory user dan /var merupakan direktory untuk menampung e-mail (pada sendmail).

Untuk quota group dapat ditambahkan seperti berikut :

# Device          Mountpoint      FStype  Options         Dump    Pass#

/dev/wd0s1b       none            swap    sw              0       0

/dev/wd0s1a       /               ufs     rw              1       1

/dev/wd0s1g       /home1          ufs     rw,userquota,groupquota    2       2

/dev/wd0s1e       /usr            ufs     rw              2       2

/dev/wd0s1f       /var            ufs     rw,userquota    2       2

proc              /proc           procfs  rw              0       0

 

            Pada saat komputer direboot dan kemudian dilakukan check quota, maka terdapat file user.quota dan group.quota pada direktory /home dan /var. untuk memastikan bahwa quota ini sudah berjalan lihat dengan perintah

$ quota -v

Disk quotas for user root (uid 0):

     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

         /home1    4205       0       0              50       0       0

         /var    126720       0       0            1314       0       0

 

Quota user dan group ini dapat di set dengan dua cara pembatasan, melalui block quota atau space hardisk atau berdasarkan inode quota atau jumlah file atau kombinasi.

  • Quota user

Untuk mengatur quota user dapat dilakukan dengan perintah berikut :

$ edquota <user1> <user2> …

$ edquota anto

 

perintah tersebut akan masuk ke editor vi :

Quotas for user nico:

/home1: blocks in use: 63, limits (soft = 20752, hard = 20752)

        inodes in use: 13, limits (soft = 0, hard = 0)

/var: blocks in use: 0, limits (soft = 20752, hard = 20752)

        inodes in use: 0, limits (soft = 0, hard = 0)

~

~

~

~

~

~

~

~

~

~

~

:q!

 

Jika user yang akan di quota sangat banyak dapat digunakan perintah dengan flag -p seperti sebagai berikut :

$ edquota –p <protouser> <start_uid> <end_uid>

$ edquota –p nico 1000 2000

 

dengan demikian semua user dengan no uid 1000 hingga 2000 akan mendapatkan quota yang sama dengan user nico.

            Untuk memeriksa secara menyeluruh quota user dapat digukaan perintah :

       $ repquota –u /home1

       $ repquota –u /var

 

Block  limits                    File  limits

User           used     soft     hard  grace     used    soft    hard grace

Root    —     4388        0        0              50       0       0

sis     —   771764        0        0           19101       0       0

nasar   —   151164        0        0            1522       0       0

akbar   —    73372        0        0            2157       0       0

roni    —    10201    40752    40752             590       0       0

hardi   —   225324        0        0            5131       0       0

hendra  —      278    10752    10752              20       0       0

tri     —    56060        0        0             463       0       0

 

 

  • Quota group

Untuk quota group dipakai perintah sebagai berikut :

       $ edquota -g <group1> <group2> …

$ edquota –g staff

 

Download File pdf     

 

Leave a Reply

Your email address will not be published. Required fields are marked *