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.
- 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>”.
- 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
- 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
- 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